threepipe
Version:
A 3D viewer framework built on top of three.js in TypeScript with a focus on quality rendering, modularity and extensibility.
24 lines (20 loc) • 911 B
text/typescript
import {ILight} from '../light/ILight'
import {IObjectProcessor, IObjectSetDirtyOptions} from '../IObject'
import {iObjectCommons} from './iObjectCommons'
export const iLightCommons = {
setDirty: function(this: ILight, options?: IObjectSetDirtyOptions): void {
this.dispatchEvent({bubbleToParent: true, ...options, type: 'lightUpdate', light: this, object: this}) // this sets sceneUpdate in root scene
iObjectCommons.setDirty.call(this, options)
},
upgradeLight: upgradeLight,
refreshUi: iObjectCommons.refreshUi,
}
/**
* Converts three.js Light to ILight setup object events, adds utility methods, and runs objectProcessor.
* @param parent
* @param objectProcessor
*/
function upgradeLight(this: ILight, parent?: ILight|undefined, objectProcessor?: IObjectProcessor): void {
if (!this) return
iObjectCommons.upgradeObject3D.call(this, parent, objectProcessor)
}