docs: private void WebPageTranformControls(GVRViewSceneObject gvrWebViewSceneObject, GVRSceneObject gvrSceneObjectAnchor, String url) {
          final String urlFinal = url;
          GVRCubeSceneObject gvrUICubeSceneObject = new GVRCubeSceneObject(gvrContext, true, cubeUISize);
          gvrUICubeSceneObject.getTransform().setPosition(cubeUIPosition[0], cubeUIPosition[1], cubeUIPosition[2]);
          gvrUICubeSceneObject.getRenderData().getMaterial().setDiffuseColor(.3f, .5f, .7f, 1);
  
          // Add the icons to close, scale, translate and rotate
          gvrTextExitObject = new GVRTextViewSceneObject(gvrContext, 0.5f, 0.45f, " x ");
          gvrTextExitObject.setName(TEXT_EXIT_NAME);
          gvrTextExitObject.setTextColor(textColorDefault);
          gvrTextExitObject.setBackgroundColor(textColorBackground);
          gvrTextExitObject.getTransform().setPosition(textExitPosition[0], textExitPosition[1], textExitPosition[2]);
          gvrUICubeSceneObject.addChildObject(gvrTextExitObject);
          gvrTextTranslationObject = new GVRTextViewSceneObject(gvrContext, 0.5f, 0.45f, " t ");
          gvrTextTranslationObject.setName(TEXT_TRANSLATE_NAME);
          gvrTextTranslationObject.setTextColor(textColorDefault);
          gvrTextTranslationObject.setBackgroundColor(textColorBackground);
          gvrTextTranslationObject.getTransform().setPosition(textTranslatePosition[0], textTranslatePosition[1], textTranslatePosition[2]);
          gvrUICubeSceneObject.addChildObject(gvrTextTranslationObject);
  
          gvrTextRotateObject = new GVRTextViewSceneObject(gvrContext, 0.5f, 0.45f, " r ");
          gvrTextRotateObject.setName(TEXT_ROTATE_NAME);
          gvrTextRotateObject.setTextColor(textColorDefault);
          gvrTextRotateObject.setBackgroundColor(textColorBackground);
          gvrTextRotateObject.getTransform().setPosition(textRotatePosition[0], textRotatePosition[1], textRotatePosition[2]);
          gvrUICubeSceneObject.addChildObject(gvrTextRotateObject);
  
          gvrTextScaleObject = new GVRTextViewSceneObject(gvrContext, 0.5f, 0.45f, " s ");
          gvrTextScaleObject.setName(TEXT_SCALE_NAME);
          gvrTextScaleObject.setTextColor(textColorDefault);
          gvrTextScaleObject.setBackgroundColor(textColorBackground);
          gvrTextScaleObject.getTransform().setPosition(textScalePosition[0], textScalePosition[1], textScalePosition[2]);
          gvrUICubeSceneObject.addChildObject(gvrTextScaleObject);
  
          // Currently req to show an object dynamically added
          webPagePlusUISceneObject = new GVRSceneObject(gvrContext);
          webPagePlusUISceneObject.getTransform().setPosition(webPagePlusUIPosition[0], webPagePlusUIPosition[1], webPagePlusUIPosition[2]);
  
          // Set up sensor for the U.I.
          Sensor uibObjectSensor = new Sensor(urlFinal, Sensor.Type.TOUCH, gvrUICubeSceneObject, true);
          final GVRSceneObject gvrWebViewSceneObjectFinal = gvrWebViewSceneObject;
          final GVRSceneObject gvrUICubeSceneObjectFinal = gvrUICubeSceneObject;
          final GVRSceneObject webPagePlusUISceneObjectFinal = webPagePlusUISceneObject;
  
          final GVRSceneObject gvrSceneObjectAnchorFinal = gvrSceneObjectAnchor;
  
          webPagePlusUISceneObjectFinal.addChildObject(gvrWebViewSceneObjectFinal);
          webPagePlusUISceneObjectFinal.addChildObject(gvrUICubeSceneObjectFinal);
          gvrSceneObjectAnchorFinal.addChildObject(webPagePlusUISceneObjectFinal);
  
          uibObjectSensor.addISensorEvents(new ISensorEvents() {
              boolean uiObjectIsActive = false;
              boolean clickDown = false;
  
              @Override
              public void onSensorEvent(SensorEvent event) {
                  float[] hitLocation = event.getPickedObject().getHitLocation();
                  float hitX = hitLocation[0];
                  if (event.isActive()) {
                      clickDown = !clickDown;
                      if (clickDown) {
                          // only go through once even if object is clicked a long time
                          uiObjectIsActive = !uiObjectIsActive;
                          if (uiObjectIsActive) {
                              if (hitX > cubeUISize.x / 4.0f) {
                                  // Delete the WebView page, control currently far right of web page
                                  gvrContext.unregisterDrawFrameListener(mOnDrawFrame);
                                  if (gvrTextScaleObject != null) {
                                      gvrWebViewSceneObjectFinal.removeChildObject(gvrTextScaleObject);
                                  }
                                  if (gvrTextRotateObject != null) {
                                      gvrWebViewSceneObjectFinal.removeChildObject(gvrTextRotateObject);
                                  }
                                  if (gvrTextTranslationObject != null) {
                                      gvrWebViewSceneObjectFinal.removeChildObject(gvrTextTranslationObject);
                                  }
                                  gvrTextExitObject = null;
                                  gvrTextScaleObject = null;
                                  gvrTextRotateObject = null;
                                  gvrTextTranslationObject = null;
                                  gvrSceneObjectAnchorFinal.removeChildObject(webPagePlusUISceneObjectFinal);
                                  webViewTranslation = false;
                                  webViewScale = false;
                                  gvrWebView = null;
                                  webPagePlusUISceneObject = null;
                                  webPageActive = false;
                              } else if (hitX > 0) {
                                  // TODO: Rotate the web view, control currently right side of control bar
                                  webViewTranslation = false;
                              } else if (hitX > -cubeUISize.x / 4.0f) {
                                  // Translate the web view, control currently left side of control bar
                                  TranslationControl(gvrWebViewSceneObjectFinal);
                              }   // end transltion web window, hit between 0 and .25,
                              else {
                                  // Scale the web view, control currently in upper right corner
                                  webViewTranslation = false;
                                  ScaleControl(gvrWebViewSceneObjectFinal, gvrSceneObjectAnchorFinal, urlFinal);
                              }  // end scaling web window, hit between -2 and -1,
                          } else {  // uiObjectIsActive is false
                              if (mOnDrawFrame != null)
                                  // wrap up any lose ends closing the web page.
                                  gvrContext.unregisterDrawFrameListener(mOnDrawFrame);
                              if (hitX > 0) {
                                  // TODO: Stop Rotating the web page
                              } else if (hitX > -cubeUISize.x / 4.0f) {
                                  // Stop translating the web page
                                  if (gvrTextTranslationObject != null) {
                                      gvrTextTranslationObject.setTextColor(textColorIsOver);
                                  }
                                  webViewTranslation = false;
                              }   // end transltion web window, hit between 0 and .25,
                              else if (hitX < -cubeUISize.x / 4.0f) {
                                  // Stop scaling the web page
                                  if (gvrTextScaleObject != null) {
                                      gvrTextScaleObject.setTextColor(textColorIsOver);
                                  }
                                  webViewScale = false;
                              }  // end scaling web window, hit between -2 and -1,
                          }
                      }
                  } else if (event.isOver() && !uiObjectIsActive) {
                      // highlight the icons to give visual cue to users
                      if (hitX > cubeUISize.x / 4.0f) {
                          if (gvrTextExitObject != null)
                              gvrTextExitObject.setTextColor(textColorIsOver);
                          if (gvrTextRotateObject != null)
                              gvrTextRotateObject.setTextColor(textColorDefault);
                          if (gvrTextTranslationObject != null)
                              gvrTextTranslationObject.setTextColor(textColorDefault);
                          if (gvrTextScaleObject != null)
                              gvrTextScaleObject.setTextColor(textColorDefault);
                          webViewTranslation = false;
                          webViewScale = false;
                      } else if (hitX > 0) {
                          if (gvrTextExitObject != null) gvrTextExitObject.setTextColor(textColorDefault);
                          if (gvrTextRotateObject != null) gvrTextRotateObject.setTextColor(textColorIsOver);
                          if (gvrTextTranslationObject != null) gvrTextTranslationObject.setTextColor(textColorDefault);
                          if (gvrTextScaleObject != null) gvrTextScaleObject.setTextColor(textColorDefault);
                          webViewTranslation = false;
                          webViewScale = false;
                      }  // end scaling web window, hit between 0 and .25,
                      else if (hitX > -cubeUISize.x / 4.0f) {
                          if (gvrTextExitObject != null) gvrTextExitObject.setTextColor(textColorDefault);
                          if (gvrTextRotateObject != null) gvrTextRotateObject.setTextColor(textColorDefault);
                          if (gvrTextTranslationObject != null) gvrTextTranslationObject.setTextColor(textColorIsOver);
                          if (gvrTextScaleObject != null) gvrTextScaleObject.setTextColor(textColorDefault);
                          webViewTranslation = false;
                          webViewScale = false;
                      } else {
                          if (gvrTextExitObject != null) gvrTextExitObject.setTextColor(textColorDefault);
                          if (gvrTextRotateObject != null) gvrTextRotateObject.setTextColor(textColorDefault);
                          if (gvrTextTranslationObject != null) gvrTextTranslationObject.setTextColor(textColorDefault);
                          if (gvrTextScaleObject != null) gvrTextScaleObject.setTextColor(textColorIsOver);
                          webViewTranslation = false;
                          webViewScale = false;
                      }
                  } else if (!event.isOver() && !uiObjectIsActive) {
                      if (gvrTextExitObject != null) gvrTextExitObject.setTextColor(textColorDefault);
                      if (gvrTextRotateObject != null)
                          gvrTextRotateObject.setTextColor(textColorDefault);
                      if (gvrTextTranslationObject != null)
                          gvrTextTranslationObject.setTextColor(textColorDefault);
                      if (gvrTextScaleObject != null) gvrTextScaleObject.setTextColor(textColorDefault);
                      webViewTranslation = false;
                      webViewScale = false;
                  }
              }
          });
      }