swinging arm


  
  PROTO SwingingArm [
      exposedField SFVec3f    translation 0 0 0
      exposedField SFRotation orientation 0 0 1 0
      exposedField MFNode     children    []
      eventIn      MFNode     addChildren 
      eventIn      MFNode     removeChildren 
      exposedField SFFloat    transparency 0.5
  ]{
      DEF MOVEPOINT Transform {
          translation    IS translation
          rotation       IS orientation
          children [
              Transform {
                  translation -0.1 0 0
                  children [
                      Group {
                          children [
                              Shape {
                                  appearance DEF GRAY Appearance {
                                      material Material {
                                          transparency IS transparency
                                          diffuseColor  0.4 0.4 0.8
                                          emissiveColor 0.4 0.4 0.8
                                      }
                                  }
                                  geometry Box { size 0.2 0.025 0.025 }
                              }
                              DEF DRAGSENSOR PlaneSensor { 
                                  minPosition 0 0 
                                  maxPosition 1 1
                              }
                          ]
                      }
                      Transform {
                          translation -0.1 0 0 
                          children [
                              Group {
                                  children [
                                      Shape {
                                          appearance Appearance { 
                                              material Material {
                                                  transparency IS transparency
                                                  diffuseColor  1.8 0.8 0.8
                                                  emissiveColor 1.8 0.8 0.8
                                              }
                                          }
                                          geometry Sphere { 
                                              radius 0.025 
                                          }
                                      }
                                      DEF ROTATESENSOR PlaneSensor { 
                                          minPosition -0.314 -0.157
                                          maxPosition 0 0.157
                                      }
                                  ]
                              }
                              DEF ROTATEPOINT Transform {
                                  children [
                                      Transform {
                                          translation -.125 0 0 
                                          children [ 
                                              Shape {
                                                  appearance USE GRAY
                                                  geometry Box { 
                                                      size 0.25 0.025 0.025 
                                                  }
                                              }
                                              DEF CONNECTPOINT Transform {
                                                  translation -0.15 0 0.03 
                                                  children       IS children
                                                  addChildren    IS addChildren
                                                  removeChildren IS removeChildren
                                              }
                                          ]
                                      }
                                  ]
                              }
                          ]
                      }
                  ]
              }
          ]    
      }