code: protected void doPick()
      {
          GVRSceneObject owner = getOwnerObject();
          GVRPickedObject[] picked = GVRFrustumPicker.pickVisible(mScene);
  
          if (owner != null)
          {
              for (int i = 0; i < picked.length; ++i)
              {
                  GVRPickedObject hit = picked[i];
  
                  if (hit != null)
                  {
                      GVRSceneObject sceneObj = hit.hitObject;
                      if (!owner.intersectsBoundingVolume(sceneObj))
                      {
                          picked[i] = null;
                      }
                  }
              }
          }
          generatePickEvents(picked);
      }
docs: Scans the scene graph to collect picked items
  and generates appropriate pick events.
  This function is called automatically by
  the picker if it is attached to a scene object.
  You can instantiate the picker and not attach
  it to a scene object. In this case you must
  manually set the pick ray and call processPick()
  to generate the pick events.
  
  @see IPickEvents
  @see GVRFrustumPicker#pickVisible