@pmndrs/xr
Version:
VR/AR for threejs
23 lines (22 loc) • 846 B
JavaScript
import { Object3D } from 'three';
import { configureXRControllerModel, loadXRControllerModel } from '../controller/model.js';
import { createUpdateXRControllerVisuals } from '../controller/visual.js';
import { onXRFrame } from './utils.js';
/**
* Component for rendering a 3D model for the XRController
* @param state: XRControllerState
* @param options: XRControllerModelOptions
*/
export class XRControllerModel extends Object3D {
constructor(state, options) {
super();
let update = () => { };
onXRFrame(() => update());
loadXRControllerModel(state.layout).then((model) => {
this.add(model);
state.object = model;
configureXRControllerModel(model, options);
update = createUpdateXRControllerVisuals(model, state.layout, state.gamepad);
});
}
}