freeblox/packages/editor/src/editor/core/viewport.ts

40 lines
874 B
TypeScript

import { EngineComponent, EventEmitter, Renderer } from '@freeblox/engine';
import { Object3D } from 'three';
import { EditorEvents } from '../types/events';
export class EditorViewport extends EngineComponent {
constructor(
protected render: Renderer,
protected events: EventEmitter<EditorEvents>
) {
super(render, events);
}
get scene() {
return this.render.scene;
}
get camera() {
return this.render.camera;
}
initialize() {
this.setSizeFromWindow();
this.camera.position.set(16, 8, 16);
}
update(dt: number) {}
cleanUp(): void {}
setSize(width: number, height: number) {
this.render.viewport.style.width = `${width}px`;
this.render.viewport.style.height = `${height}px`;
this.render.setSize(width, height);
}
setSizeFromWindow() {
this.setSize(window.innerWidth, window.innerHeight);
}
}