threepipe
Version:
A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.
33 lines (27 loc) • 862 B
text/typescript
import {Camera, Object3D} from 'three'
import {IUiConfigContainer} from 'uiconfig.js'
import {AHelperWidget} from './AHelperWidget'
export abstract class ACameraHelperWidget extends AHelperWidget {
camera: (Camera & IUiConfigContainer) | undefined
protected constructor(object: Camera & IUiConfigContainer) {
super(object)
this.camera = object
this.traverse(o => {
o.userData.__keepShadowDef = true
o.castShadow = false
o.receiveShadow = false
})
}
preRender() { // req because its a camera
if (!this.visible) return
this._objectBeforeRender()
}
attach(object: Object3D): this {
super.attach(object)
// listening to cameraUpdate is not needed here
return this
}
detach(): this {
return super.detach()
}
}