Alexander Buzin 94281dae50 v2.2.0-alpha.0
Former-commit-id: a9cb3cebf19b298c5f08c87b208f26bfe5c5dfa4
2018-05-19 01:24:51 +03:00

86 lines
1.6 KiB
JavaScript

import * as UTILS from '@utils';
const DatGUI = new DatGUIModule();
const app = new WHS.App([
new WHS.ElementModule(),
new WHS.SceneModule(),
new WHS.DefineModule('camera', new WHS.PerspectiveCamera({
position: {
z: 20,
y: 5
}
})),
new WHS.RenderingModule(UTILS.appDefaults.rendering, {
shadow: true
}),
new PHYSICS.WorldModule(UTILS.appDefaults.physics),
new WHS.OrbitControlsModule(),
new StatsModule(0),
new WHS.ResizeModule(),
DatGUI
]);
app.get('camera').applyModule(
DatGUI.Camera({
name: 'PerspectiveCamera'
})
);
const sphere = new WHS.Sphere({
material: new THREE.MeshLambertMaterial({color: 0xffffff}),
modules: [
new WHS.DynamicGeometryModule(),
DatGUI.Mesh({
name: 'Sphere',
geometry: {
radius: {
range: [2, 100]
}
}
}).materials({
phong: new THREE.MeshPhongMaterial(),
depth: new THREE.MeshDepthMaterial(),
lambert: new THREE.MeshLambertMaterial(),
basic: new THREE.MeshBasicMaterial()
})
]
});
DatGUI.folder('main_folder').folder('child_folder').Custom([{
name: 'myProp',
value: 10,
step: 10,
range: [false, 100],
onChange: v => {
console.log(`myProp: ${v}`);
}
}]);
new WHS.SpotLight({
position: [10, 20, 10],
distance: 200,
intensity: 2,
modules: [
DatGUI.Light({
name: 'SpotLight'
})
]
}).addTo(app);
window.sp = sphere;
new WHS.Plane({
geometry: [100, 100],
material: new THREE.MeshLambertMaterial({color: 0xffffff}),
position: [0, -10, 0],
rotation: [-Math.PI / 2, 0, 0]
}).addTo(app);
sphere.addTo(app);
app.start();