35 lines
909 B
JavaScript
35 lines
909 B
JavaScript
import * as THREE from 'https://esm.sh/three';
|
|
import { ThreeRendererElement } from './ThreeRendererElement.js';
|
|
|
|
export class SceneElement extends HTMLElement {
|
|
constructor() {
|
|
super();
|
|
|
|
}
|
|
|
|
rendererConnected() {
|
|
console.log('fjlkjsdflksjdf');
|
|
}
|
|
|
|
findRenderer() {
|
|
var p = this;
|
|
while((p = p.parentElement) !== undefined)
|
|
if(p instanceof ThreeRendererElement) return p;
|
|
}
|
|
|
|
connectedCallback() {
|
|
this.scene = new THREE.Scene();
|
|
this.scene.background = new THREE.Color(this.getAttribute('background-color') || 0xababab);
|
|
if(!(this.parentElement instanceof ThreeRendererElement)) {
|
|
throw Error("Parent not ThreeRendererElement");
|
|
}
|
|
|
|
this.parentElement.addEventListener("connected", this.rendererConnected.bind(this));
|
|
|
|
this.dispatchEvent(new CustomEvent('ready'));
|
|
this.ready = true;
|
|
}
|
|
}
|
|
|
|
customElements.define('three-scene', SceneElement);
|