1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- const STATE = {
- NONE: -1,
- MOVE: 0,
- ZOOM_OR_PAN: 1
- }
- Component({
- behaviors: [require('../../common/share-behavior').default],
- properties: {
- a: Number,
- },
- data: {
- loaded: false,
- arReady: false,
- },
- lifetimes: {
- async attached() {
- console.log('data', this.data)
- }
- },
- methods: {
- handleReady({detail}) {
- const xrScene = this.scene = detail.value;
- const xrSystem = wx.getXrFrameSystem();
- this.mat = new (xrSystem.Matrix4)();
- console.log('xr-scene', xrScene);
- const { width, height } = this.scene
- this.cameraTrs = this.scene.getElementById('camera').getComponent(xrSystem.Transform);
-
- this.leftTRS = this.scene.getElementById('l').getComponent(xrSystem.Transform);
- this.rightTRS = this.scene.getElementById('r').getComponent(xrSystem.Transform);
- this.frontTRS = this.scene.getElementById('f').getComponent(xrSystem.Transform);
- this.backTRS = this.scene.getElementById('b').getComponent(xrSystem.Transform);
- this.FACING = xrSystem.Vector3.createFromNumber(0, 0, 0);
- this.UP = xrSystem.Vector3.createFromNumber(0, 1, 0);
- xrScene.event.add('tick', this.handleTick.bind(this));
- },
- handleTick: function () {
- const xrSystem = wx.getXrFrameSystem();
- if (this.leftTRS) {
- console.log()
- const quaternion = this.leftTRS.quaternion;
- // 算出从物体到相机的向量
- this.FACING.set(this.cameraTrs.position).sub(this.leftTRS.position, this.FACING);
- xrSystem.Quaternion.lookRotation(this.FACING, this.UP, quaternion);
- }
- if (this.rightTRS) {
- const quaternion = this.rightTRS.quaternion;
- // 算出从物体到相机的向量
- this.FACING.set(this.cameraTrs.position).sub(this.rightTRS.position, this.FACING);
- xrSystem.Quaternion.lookRotation(this.FACING, this.UP, quaternion);
- }
- if (this.frontTRS) {
- const quaternion = this.frontTRS.quaternion;
- // // 算出从物体到相机的向量
- this.FACING.set(this.cameraTrs.position).sub(this.frontTRS.position, this.FACING);
- xrSystem.Quaternion.lookRotation(this.FACING, this.UP, quaternion);
- }
- if (this.backTRS) {
- const quaternion = this.backTRS.quaternion;
- // 算出从物体到相机的向量
- this.FACING.set(this.cameraTrs.position).sub(this.backTRS.position, this.FACING);
- xrSystem.Quaternion.lookRotation(this.FACING, this.UP, quaternion);
- }
- },
- }
- })
|