whs-cube-spheres
Version:
This plugin has a container with multiple spheres.
49 lines (38 loc) • 1.18 kB
JavaScript
// import {addResizeListener} from 'detect-element-resize';
export class ResizeModule {
constructor(params = {}) {
this.params = Object.assign({
auto: true
}, params);
}
setSize(width = 1, height = 1) {
this.camera.native.aspect = width / height;
this.camera.native.updateProjectionMatrix();
if (this.rendering) this.rendering.setSize(width, height);
}
trigger() {
const {
container: {
offsetWidth,
offsetHeight
},
resolution
} = this;
this.setSize(
Number(offsetWidth * resolution.x).toFixed(),
Number(offsetHeight * resolution.y).toFixed()
);
}
addAutoresize() {
this.container = this.getContainer();
this.resolution = this.getResolution();
if (this.params.auto) window.addEventListener('resize', this.trigger.bind(this));
}
manager(manager) {
this.rendering = manager.get('renderer');
this.camera = manager.get('camera');
this.getResolution = () => manager.get('renderer', true).params.resolution;
this.getContainer = () => manager.get('container');
this.addAutoresize();
}
}