awv3
Version:
⚡ AWV3 embedded CAD
74 lines (68 loc) • 1.64 kB
JavaScript
import * as THREE from 'three';
import Events from './events';
import { Pool, ObjectPrototype } from './helpers';
const defaults = {
resolution: 1,
up: [0, 1, 0],
stats: false,
debug: false,
ambientIntensity: 1.0,
renderOrder: {
Mesh: 0,
LineSegments: 100,
},
updateView: {
focus: false,
zoom: false,
rotate: false,
layers: false,
},
materials: {
lazy: false,
multi: true,
lineDistances: true,
shadows: true,
lights: true,
},
lineShader: THREE.LineBasicMaterial,
lineShaderOptions: {
transparent: true,
fog: false,
},
meshShader: THREE.MeshPhysicalMaterial,
meshShaderOptions: {
transparent: true,
fog: false,
reflectivity: 1,
polygonOffset: true,
polygonOffsetFactor: 1,
polygonOffsetUnits: 1,
emissive: new THREE.Color(0),
reflectivity: 1,
metalness: 0.8,
roughness: 0.7,
clearCoat: 0.75,
clearCoatRoughness: 0.5,
envMapIntensity: 0.75
},
};
class Defaults extends Events {
constructor() {
super();
for (let key in defaults) {
Object.defineProperty(this, key, {
configurable: true,
get: () => defaults[key],
set: value => this.emit(Defaults.Events.Changed, key, (defaults[key] = value)),
});
}
}
get all() {
return defaults;
}
}
Defaults.Events = {
Changed: 'Changed',
};
const instance = new Defaults();
export default instance;