#VRML V2.0 utf8 WorldInfo { title "VRML: AuvInBeachTanks.wrl" info [ "Author: Don Brutzman" "Revised: 19 March 2002" "Purpose: Example showing DIS EspduTransform interface for physics-animated AUV entities" "Script: mil.navy.nps.auv.AuvPduGenerator.java generates ESPDUs for this scene" "Browsers: Netscape 4.7/CosmoPlayer 2.1.1" "based on: http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/dis/EspduTransformEXAMPLE.wrl" "URL" "http://web.nps.navy.mil/~brutzman/vrtp/demo/auv/AuvInBeachTanks.wrl" "http://www.web3D.org/WorkingGroups/vrtp/demo/auv/AuvInBeachTanks.wrl" ] } ########################################################################### # To use EspduTransform, include the following EXTERNPROTO definition: EXTERNPROTO EspduTransform [ # DIS ESPDU fields - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - eventOut SFTime timestamp # DIS timestamp in VRML units field SFString marking # 0..11 character label for entity field SFTime readInterval # seconds between read updates field SFTime writeInterval # seconds between write updates # readInterval=0.0 means no reading, # writeInterval=0.0 means no writing field SFString address # multicast address or "localhost" field SFInt32 port # port number field SFInt32 siteID # EntityID triplet, first element field SFInt32 applicationID # EntityID triplet, second element field SFInt32 entityID # EntityID triplet, third element # Standard VRML Transform fields - - - - - - - - - - - - - - - - - - - - - - - - - exposedField MFNode children exposedField SFVec3f translation # default prior to DIS update exposedField SFRotation rotation # default prior to DIS update exposedField SFVec3f scale exposedField SFRotation scaleOrientation field SFVec3f bboxCenter field SFVec3f bboxSize exposedField SFVec3f center eventIn MFNode addChildren eventIn MFNode removeChildren # Automatic MulticastRelayClient if no multicast heard - - - - - - - - - - - - - - field SFString multicastRelayHost field SFInt32 multicastRelayPort field SFBool rtpHeaderExpected # whether RTP headers are prepended to DIS eventOut SFBool rtpHeaderHeard # Collision/Detonation/Fire PDU heard, or no active ESPDUs heard - - - - - - - - - eventOut SFBool active # have we had an update recently? eventOut SFBool collided # has a CollisionPDU reported a collision? eventOut SFTime collideTime # when were we collided with? eventOut SFBool detonated # has a DetonationPDU reported a detonation? eventOut SFTime detonateTime # when were we detonated? eventOut SFBool fired1 # have we shot a Fire (weapon) PDU (primary)? eventOut SFBool fired2 # have we shot a Fire (weapon) PDU (secondary)? eventOut SFTime firedTime # when did we shoot a Fire (weapon) PDU? eventOut SFVec3f munitionStartPoint eventOut SFVec3f munitionEndPoint # Articulated Parameter (user-defined payload) fields - - - - - - - - - - - - - - - - - - - - - - eventOut SFInt32 articulationParameterCount # articulated parameters available eventOut SFFloat articulationParameterValue0 # user-defined payload value eventOut SFFloat articulationParameterValue1 # user-defined payload value eventOut SFFloat articulationParameterValue2 # user-defined payload value eventOut SFFloat articulationParameterValue3 # user-defined payload value eventOut SFFloat articulationParameterValue4 # user-defined payload value eventOut SFFloat articulationParameterValue5 # user-defined payload value eventOut SFFloat articulationParameterValue6 # user-defined payload value eventOut SFFloat articulationParameterValue7 # user-defined payload value eventOut SFFloat articulationParameterValue8 # user-defined payload value eventOut SFFloat articulationParameterValue9 # user-defined payload value eventOut SFFloat articulationParameterValue10 # user-defined payload value eventOut SFFloat articulationParameterValue11 # user-defined payload value eventOut SFFloat articulationParameterValue12 # user-defined payload value eventOut SFFloat articulationParameterValue13 # user-defined payload value eventOut SFFloat articulationParameterValue14 # user-defined payload value # Trace fields - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - exposedField SFColor traceColor # color of VRML trace text exposedField SFVec3f traceOffset # VRML text position relative to entity field SFFloat traceFontSize # VRML text scale field SFBool traceJava # Java console tracing enabled? ] [#"EspduTransformPROTO.wrl#EspduTransform" # local or remote URLs for the EXTERNPROTO "../../mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" "file:///vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" "file:///C|/vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" # default PC installation "file:///D|/vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" # alternate PC installation "file:///C:/vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" # default PC installation "file:///D:/vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" # alternate PC installation "http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" "http://www.web3D.org/WorkingGroups/vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl#EspduTransform" ] ########################################################################### EXTERNPROTO Phoenix [ eventIn SFVec3f translation eventIn SFRotation rotation eventIn SFFloat portRpm eventIn SFFloat stbdRpm eventIn SFFloat forwardRudders eventIn SFFloat afterRudders eventIn SFFloat forwardPlanes eventIn SFFloat afterPlanes eventIn SFFloat forwardVerticalThruster eventIn SFFloat afterVerticalThruster eventIn SFFloat forwardLateralThruster eventIn SFFloat afterLateralThruster eventIn SFFloat ST725Range eventIn SFFloat ST725Bearing eventIn SFFloat ST725Intensity eventIn SFFloat ST1000Range eventIn SFFloat ST1000Bearing eventIn SFFloat ST1000Intensity field SFColor hullColor field SFString hullName ] [ "PhoenixPROTO.wrl#Phoenix" "file:///C|/vrtp/demo/auv/PhoenixPROTO.wrl#Phoenix" # default PC installation "file:///D|/vrtp/demo/auv/PhoenixPROTO.wrl#Phoenix" # alternate PC installation "http://web.nps.navy.mil/~brutzman/vrtp/demo/auv/PhoenixPROTO.wrl#Phoenix" "http://www.web3D.org/WorkingGroups/vrtp/demo/auv/PhoenixPROTO.wrl#Phoenix" ] ########################################################################### EXTERNPROTO Aries [ eventIn SFVec3f translation eventIn SFRotation rotation eventIn SFFloat portRpm eventIn SFFloat stbdRpm eventIn SFFloat forwardRudders eventIn SFFloat afterRudders eventIn SFFloat forwardPlanes eventIn SFFloat afterPlanes eventIn SFFloat forwardVerticalThruster eventIn SFFloat afterVerticalThruster eventIn SFFloat forwardLateralThruster eventIn SFFloat afterLateralThruster eventIn SFFloat ST725Range eventIn SFFloat ST725Bearing eventIn SFFloat ST725Intensity eventIn SFFloat ST1000Range eventIn SFFloat ST1000Bearing eventIn SFFloat ST1000Intensity field SFColor hullColor field SFString hullName ] [ "AriesPROTO.wrl#Aries" "file:///C|/vrtp/demo/auv/AriesPROTO.wrl#Aries" # default PC installation "file:///D|/vrtp/demo/auv/AriesPROTO.wrl#Aries" # alternate PC installation "file:///C:/vrtp/demo/auv/AriesPROTO.wrl#Aries" # default PC installation "file:///D:/vrtp/demo/auv/AriesPROTO.wrl#Aries" # alternate PC installation "http://web.nps.navy.mil/~brutzman/vrtp/demo/auv/AriesPROTO.wrl#Aries" "http://www.web3D.org/WorkingGroups/vrtp/demo/auv/AriesPROTO.wrl#Aries" ] # ########################################################################### # Example uses of EspduTransform node to view two remote DIS-capable entities: Group { children [ NavigationInfo { type ["EXAMINE" "ANY"] speed 2 # m/sec for FLY | WALK visibilityLimit 2000 # reduce aliasing by increasing relative precision } WorldInfo { title "AUV examples of EspduTransform use" } Background { skyColor [ 1 1 .5, .4 .4 .6, .4 .4 .6, .5 .5 .75, .6 .6 .8, .8 .8 .8 ] skyAngle [ .05 1.4 1.55 1.56 1.57] groundColor [ .05 .05 .15, .05 .05 .15 ] groundAngle [ 1.57 ] } Inline { url [ # chiseled & gzipped due to extensive CosmoWorlds warnings "BeachTank2.0.chiseled.wrl.gz" ] } # "local AUV" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DEF LOCAL_AUV_ESPDUTRANSFORM EspduTransform { translation 4 -1.5 14 # default initial position marking "local AUV" # 11 characters max (DIS constraint) readInterval .5 # sec address "224.2.181.145" # multicast address port 62040 # port number siteID 0 applicationID 1 entityID 2 # entity 2 runs in middle tank 2 traceJava FALSE traceColor 0 .5 .5 children [ DEF LOCAL_AUV Phoenix { hullColor .5 0 .5 hullName "local-run AUV --- in Tank 2 ---" } ] } # "NPS-run AUV" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DEF NPS_HEARTBEAT_AUV_ESPDUTRANSFORM EspduTransform { translation 5 -2 3 # default initial position marking "NPS-run AUV" # 11 characters max (DIS constraint) readInterval .5 # sec address "224.2.181.145" # multicast address port 62040 # port number siteID 0 applicationID 1 entityID 1 # entity 1 runs in Tank # 1 traceJava FALSE traceColor 0 .5 .5 children [ DEF NPS_HEARTBEAT_AUV Phoenix { hullColor 0 0 .8 hullName "NPS-run AUV ----- in Tank 1 ---" } ] } # "dynamicsAUV" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DEF DYNAMICS_AUV_ESPDUTRANSFORM EspduTransform { translation 4 -1.5 28 # default initial position marking "dynamicsAUV" # 11 characters max (DIS constraint) readInterval .05 # sec (dynamics AUV is 10+ Hz) address "224.2.181.145" # multicast address port 62040 # port number siteID 36 applicationID 1 entityID 1 # 36/1/1 hi-res AUV mission.script.beachtank3 runs in Tank # 3 traceJava FALSE # TRUE traceColor 0 .5 .5 children [ DEF DYNAMICS_AUV Phoenix { hullColor .2 .9 .2 hullName "dynamicsAUV --- Tank 3 --- " } ] } # Insert additional entities and world scenes inserted as desired, # at this level.. ] } # Articulated parameters are used to communicate fins position and thruster commands ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue1 TO NPS_HEARTBEAT_AUV.portRpm ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue2 TO NPS_HEARTBEAT_AUV.stbdRpm ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue3 TO NPS_HEARTBEAT_AUV.forwardRudders ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue4 TO NPS_HEARTBEAT_AUV.afterRudders ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue5 TO NPS_HEARTBEAT_AUV.forwardPlanes ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue6 TO NPS_HEARTBEAT_AUV.afterPlanes ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue7 TO NPS_HEARTBEAT_AUV.forwardVerticalThruster ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue8 TO NPS_HEARTBEAT_AUV.afterVerticalThruster ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue9 TO NPS_HEARTBEAT_AUV.forwardLateralThruster ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue10 TO NPS_HEARTBEAT_AUV.afterLateralThruster ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue11 TO NPS_HEARTBEAT_AUV.ST725Range ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue12 TO NPS_HEARTBEAT_AUV.ST725Bearing ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue13 TO NPS_HEARTBEAT_AUV.ST1000Range ROUTE NPS_HEARTBEAT_AUV_ESPDUTRANSFORM.articulationParameterValue14 TO NPS_HEARTBEAT_AUV.ST1000Bearing ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue1 TO LOCAL_AUV.portRpm ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue2 TO LOCAL_AUV.stbdRpm ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue3 TO LOCAL_AUV.forwardRudders ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue4 TO LOCAL_AUV.afterRudders ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue5 TO LOCAL_AUV.forwardPlanes ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue6 TO LOCAL_AUV.afterPlanes ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue7 TO LOCAL_AUV.forwardVerticalThruster ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue8 TO LOCAL_AUV.afterVerticalThruster ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue9 TO LOCAL_AUV.forwardLateralThruster ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue10 TO LOCAL_AUV.afterLateralThruster ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue11 TO LOCAL_AUV.ST725Range ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue12 TO LOCAL_AUV.ST725Bearing ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue13 TO LOCAL_AUV.ST1000Range ROUTE LOCAL_AUV_ESPDUTRANSFORM.articulationParameterValue14 TO LOCAL_AUV.ST1000Bearing ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue1 TO DYNAMICS_AUV.portRpm ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue2 TO DYNAMICS_AUV.stbdRpm ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue3 TO DYNAMICS_AUV.forwardRudders ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue4 TO DYNAMICS_AUV.afterRudders ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue5 TO DYNAMICS_AUV.forwardPlanes ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue6 TO DYNAMICS_AUV.afterPlanes ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue7 TO DYNAMICS_AUV.forwardVerticalThruster ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue8 TO DYNAMICS_AUV.afterVerticalThruster ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue9 TO DYNAMICS_AUV.forwardLateralThruster ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue10 TO DYNAMICS_AUV.afterLateralThruster ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue11 TO DYNAMICS_AUV.ST725Range ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue12 TO DYNAMICS_AUV.ST725Bearing ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue13 TO DYNAMICS_AUV.ST1000Range ROUTE DYNAMICS_AUV_ESPDUTRANSFORM.articulationParameterValue14 TO DYNAMICS_AUV.ST1000Bearing # local entity viewpoints are best, since entity may move out of sight of fixed viewpoints # due to DIS PDU translations, so no further viewpoints are provided in this scene.