diff options
| author | Patrick Schönberger | 2021-01-04 14:52:49 +0100 |
|---|---|---|
| committer | Patrick Schönberger | 2021-01-04 14:52:49 +0100 |
| commit | c2adddfd9ecca5d483cf3147b8bd4870f3ea6150 (patch) | |
| tree | 5dc0af9845a6766c312cf525c4d7e912d1f3897c /Scripts/main.js | |
| parent | 52e5f1e08c894e20d0ac402b0022a55b878486a3 (diff) | |
| download | cloth_sim-c2adddfd9ecca5d483cf3147b8bd4870f3ea6150.tar.gz cloth_sim-c2adddfd9ecca5d483cf3147b8bd4870f3ea6150.zip | |
Basic Three.js Setup
Diffstat (limited to 'Scripts/main.js')
| -rw-r--r-- | Scripts/main.js | 70 |
1 files changed, 70 insertions, 0 deletions
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 |
