code: public final void getWorldPickRay(Vector3f origin, Vector3f direction)
      {
          GVRSceneObject owner = getOwnerObject();
  
          if (owner == null)              // should never come here, picker always
          {                               // owned by GVRGearCursorController pivot
              owner = mScene.getMainCameraRig().getHeadTransformObject();
          }
          Matrix4f mtx = owner.getTransform().getModelMatrix4f();
          origin.set(mRayOrigin);
          direction.set(mRayDirection);
          origin.mulPosition(mtx);        // get ray in world coordinates
          direction.mulDirection(mtx);
          direction.normalize();
      }
docs: Gets the pick ray in world coordinates.
  <p>
  World coordinates are defined as the coordinate system at the
  root of the scene graph before any camera viewing transformation
  is applied.
  <p>
  You can get the pick ray relative to the scene object that
  owns the picker (or the camera if no owner) by calling
  {@link #getPickRay()}
  @param origin    world coordinate origin of the pick ray
  @param direction world coordinate direction of the pick ray
  @see #getPickRay()
  @see #setPickRay(float, float, float, float, float, float)