X-Git-Url: https://gitweb.ps.run/cloth_sim/blobdiff_plain/8a3364b0cd057fcfb7f89da112b9032fee76e403..8199b09231f15b0f84480656a0e92827d795fcdc:/Scripts/main.js diff --git a/Scripts/main.js b/Scripts/main.js index 4d87337..6fa9f22 100644 --- a/Scripts/main.js +++ b/Scripts/main.js @@ -75,13 +75,25 @@ function init() { const canvasSpace = 200; /** Constant Frame Time */ - const frameTime = 1000.0 / 60.0; + const frameTime = 1000.0 / 200.0; /** Setup scene */ let [scene, camera, renderer] = setup_scene(canvasSpace); - - // Add Cloth Initialization + //const loader = new THREE.TextureLoader(); + //Red color: 0xC70039 + + const cloth = new Cloth(1, 0.5, 20, 20); + const clothGeometry = cloth.generateGeometry(); + //const clothMaterial = new THREE.MeshStandardMaterial({ map: loader.load('Textures/DeutschlandFlagge.jpg'), color: 0xffffff, side: THREE.DoubleSide, flatShading: false}); + const clothMaterial = new THREE.MeshStandardMaterial({ color: 0xC70039, side: THREE.DoubleSide, flatShading: false }); + const clothMesh = new THREE.Mesh(clothGeometry, clothMaterial); + scene.add(clothMesh); + + document.getElementById("windToggle").onchange = (e) => { + options.wind = e.target.checked; + }; + let raycaster = new THREE.Raycaster(); let intersects; let rightMousePressed; @@ -90,7 +102,9 @@ function init() { * @param {number} dt - time passed since last frame in ms */ function animate(dt) { - // simulate cloth + cloth.simulate(dt / 1000); + + cloth.updateGeometry(clothGeometry); raycaster.setFromCamera( new THREE.Vector2((mousePos.x / w) * 2 - 1, ((h - mousePos.y) / h) * 2 - 1), camera );