import { v4 as uuid } from '../../node_modules/uuid/dist/esm-browser/index.js';
import { Reporter } from '../reporter/reporter.js';
import { WrappedImage } from '../package/image/wrapped_image.js';
import { checkPropTypes } from '../lib.js';
import { BuildableComponent } from '../package/component/buildable_component.js';
import { EnvironmentMap } from '../package/environment_map.js';
import {
PMREMGenerator,
WebGL1Renderer,
Light,
TextureLoader,
Texture,
CubeTexture,
WebGLCubeRenderTarget,
WebGLRenderer
} from '../../node_modules/three/build/three.module.js';
// environment ook deelmaken van de package?
/** Everything needed to give a scene a mood */
class Environment extends BuildableComponent {
/**
* @param {Reporter} reporter
* @param {Object} settings
* @param {UUID} [settings.id]
* @param {Array<Light>} [settings.lights]
* @param {EnvironmentMap} [settings.envMap]
*/
constructor( reporter, settings ) {
super(
reporter,
settings,
{
parse: {
lights: 'integral'
}
}
);
checkPropTypes(
settings,
{
},
{
envMap: EnvironmentMap,
lights: val =>
Array.isArray(val) && val.every( env => env instanceof Light )
}
);
if ( settings.envMap != undefined ){
this._envMapEXR = settings.envMap._envMap //buildEnvironmentMapEXR( settings.exrMap )
//console.log( exrMap )
}
this._lights = settings.lights
this._envMapCube = settings.cubeMap
}
_setEnvironment(){
//hier de enviroment
}
}
export { Environment };