Decouple Service for WebEngines

This feature provides a decoupled service to access WebEngines and expose them in Python, so users can automatically reload a WebEngine in VRED.

This is needed when an external application streams its UI to VRED, it has changes, and needs to be reloaded.

Use vrWebEngineService, vrdWebEngine, and vrdUiEngine. Now a sceneplate WebEngine shares the name of its sceneplate, making it possible to find it with the new service. Send commands to sceneplates with web content, as well.

Using the Python API Via the Web Interface

This interface can be used via Python or the web interface. Access is through JavaScript. Function calls are executed asynchronously. The following example shows how such a call could look from a web page. All parameter and return types are mapped to JavaScript types. QVector3D and QMatrix4x4 for example will be mapped to arrays of 3 or 16 numbers.

<script type="module">
  import {api} from '/api.js';

  // reacting on a signal
  api.vrClusterService.started.connect(() => {console.log('Started')});
  // calling a function
  api.vrClusterService.start();
  // changing the position of the camera
  api.vrNodeService.findNode("Perspective")
      .then((node) => node.setTranslation([10,20,30]));
</script>