X3DDragSensorNode : X3DPointingDeviceSensorNode { 
  SFBool   [in,out] autoOffset         TRUE
  SFString [in,out] description        ""
  SFBool   [in,out] enabled
  SFNode   [in,out] metadata           NULL [X3DMetadataObject]
  SFBool   [out]    isActive
  SFBool   [out]    isOver
  SFVec3f  [out]    trackPoint_changed
}

X3DPointingDeviceSensorNode : X3DSensorNode {
  SFString [in,out] description ""
  SFBool   [in,out] enabled
  SFNode   [in,out] metadata    NULL [X3DMetadataObject]
  SFBool   [out]    isActive
  SFBool   [out]    isOver
}

X3DTouchSensorNode : X3DPointingDeviceSensorNode { 
  SFString [in,out] description ""
  SFBool   [in,out] enabled
  SFNode   [in,out] metadata    NULL [X3DMetadataObject]
  SFBool   [out]    isActive
  SFBool   [out]    isOver
  SFTime   [out]    touchTime
}

CylinderSensor : X3DDragSensorNode { 
  SFBool     [in,out] autoOffset         TRUE
  SFRotation [in,out] axisRotation       0 1 0 0
  SFString   [in,out] description        ""
  SFFloat    [in,out] diskAngle          Pi/12    [0,Pi/2]
  SFBool     [in,out] enabled            TRUE
  SFFloat    [in,out] maxAngle           -1      [-2Pi,2Pi]
  SFNode     [in,out] metadata           NULL    [X3DMetadataObject]
  SFFloat    [in,out] minAngle           0       [-2Pi,2Pi]
  SFFloat    [in,out] offset             0       (-Inf,Inf)
  SFBool     [out]    isActive
  SFBool     [out]    isOver
  SFRotation [out]    rotation_changed
  SFVec3f    [out]    trackPoint_changed
}

PlaneSensor : X3DDragSensorNode { 
  SFBool     [in,out] autoOffset          TRUE
  SFRotation [in,out] axisRotation        0 0 1 0
  SFString   [in,out] description         ""
  SFBool     [in,out] enabled             TRUE
  SFVec2f    [in,out] maxPosition         -1 -1 (-Inf,Inf)
  SFNode     [in,out] metadata            NULL  [X3DMetadataObject]
  SFVec2f    [in,out] minPosition         0 0   (-Inf,Inf)
  SFVec3f    [in,out] offset              0 0 0 (-Inf,Inf)
  SFBool     [out]    isActive
  SFBool     [out]    isOver
  SFVec3f    [out]    trackPoint_changed
  SFVec3f    [out]    translation_changed
}

SphereSensor : X3DDragSensorNode { 
  SFBool     [in,out] autoOffset         TRUE
  SFString   [in,out] description        ""
  SFBool     [in,out] enabled            TRUE
  SFNode     [in,out] metadata           NULL    [X3DMetadataObject]
  SFRotation [in,out] offset             0 1 0 0 [-1,1],(-Inf,Inf)
  SFBool     [out]    isActive
  SFBool     [out]    isOver
  SFRotation [out]    rotation_changed
  SFVec3f    [out]    trackPoint_changed
}

TouchSensor : X3DTouchSensorNode { 
  SFString [in,out] description         ""
  SFBool   [in,out] enabled             TRUE
  SFNode   [in,out] metadata            NULL [X3DMetadataObject]
  SFVec3f  [out]    hitNormal_changed
  SFVec3f  [out]    hitPoint_changed
  SFVec2f  [out]    hitTexCoord_changed
  SFBool   [out]    isActive
  SFBool   [out]    isOver
  SFTime   [out]    touchTime
}

