removeSource(oSource) {
        oSource.resetCache();
        const id = oSource.id;
        oSource._deadPixels.iterate((x, y) => {
            this.removePixel(x, y, id);
        });

        const n = this._sources.indexOf(oSource);
        if (n) {
            this._sources.splice(n, 1);
        }
        this.invalidate();
    }
/**
     * removes a light source, previously added with add light source
     * the object returns by addLightsource is to be specified
     * @param oSource
     */
removes a light source, previously added with add light source
the object returns by addLightsource is to be specified
@param oSource
removes a light source previously added with add light source the object returns by addLightsource is to be specified @param oSource
removeSource(oSource) {
        oSource.resetCache();
        const id = oSource.id;
        oSource._deadPixels.iterate((x, y) => {
            this.removePixel(x, y, id);
        });
        const n = this._sources.indexOf(oSource);
        if (n) {
            this._sources.splice(n, 1);
        }
        this.invalidate();
    }
removeSource ( oSource ) { oSource . resetCache ( ) ; const id = oSource . id ; oSource . _deadPixels . iterate ( ( x , y ) => { this . removePixel ( x , y , id ) ; } ) ; const n = this . _sources . indexOf ( oSource ) ; if ( n ) { this . _sources . splice ( n , 1 ) ; } this . invalidate ( ) ; }
removes a light source, previously added with add light source
 the object returns by addLightsource is to be specified
 @param oSource
removes a light source previously added with add light source the object returns by addLightsource is to be specified @param oSource