mirror of
https://github.com/WhitestormJS/whs.js.git
synced 2025-12-08 20:26:23 +00:00
86 lines
1.6 KiB
JavaScript
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();
|