X-Git-Url: https://gitweb.ps.run/cloth_sim/blobdiff_plain/52e5f1e08c894e20d0ac402b0022a55b878486a3..c2adddfd9ecca5d483cf3147b8bd4870f3ea6150:/Scripts/main.js diff --git a/Scripts/main.js b/Scripts/main.js new file mode 100644 index 0000000..f395b6c --- /dev/null +++ b/Scripts/main.js @@ -0,0 +1,70 @@ +function init() { + class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } + + add(that) { + return new Point( + this.x + that.x, + this.y + that.y + ); + } + + sub(that) { + return new Point( + this.x - that.x, + this.y - that.y + ); + } + + dist(that) { + let a = this.x - that.x; + let b = this.y - that.y; + return Math.sqrt(a * a + b * b) + } + } + + let mousePos = new Point(); + + const scene = new THREE.Scene(); + const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); + + const renderer = new THREE.WebGLRenderer(); + renderer.setSize(window.innerWidth, window.innerHeight - 200); + document.getElementById("threejscontainer").appendChild(renderer.domElement); + + const directionalLight = new THREE.DirectionalLight(0xffffff, 1); + scene.add(directionalLight); + + const geometry = new THREE.BoxGeometry(); + const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); + const cube = new THREE.Mesh(geometry, material); + scene.add(cube); + + camera.position.z = 5; + + function animate(dt) { + requestAnimationFrame(animate); + renderer.render(scene, camera); + } + + let canvas = document.getElementsByTagName("canvas")[0]; + let resize = function () { + w = window.innerWidth; + h = window.innerHeight - 200; + canvas.width = w; + canvas.height = h; + } + window.onresize = resize; + resize(); + if (canvas.getContext) { + ctx = canvas.getContext('2d'); + animate(performance.now()); + } + canvas.onmousemove = (evt) => { + mousePos.x = evt.clientX; + mousePos.y = evt.clientY; + }; +} \ No newline at end of file