40 lines
874 B
TypeScript
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);
|
|
}
|
|
}
|