import { Face, Spring, Cloth } from './cloth.js';\r
\r
\r
+/**\r
+ * rendering\r
+ * Einheiten konsistent\r
+ * Wind\r
+ * evtl. an Stoff ziehen\r
+ */\r
+\r
+\r
class Point {\r
constructor(x, y) {\r
this.x = x;\r
\r
function init() {\r
let mousePos = new Point();\r
-\r
+ let previousClothSimulation;\r
+ \r
/**\r
* Space left empty under canvas\r
* for UI elements\r
*/\r
const canvasSpace = 200;\r
\r
+ /** Constant Frame Time */\r
+ const frameTime = 1000.0 / 60.0;\r
+\r
/** Setup scene */\r
let [scene, camera, renderer] = setup_scene(canvasSpace);\r
\r
/** setup cloth and generate debug mesh */\r
let cloth = new Cloth();\r
- cloth.createBasic(10, 10, 5, 5);\r
- cloth.createDebugMesh(scene);\r
+ cloth.createBasic(10, 10, 10, 10);\r
+ //cloth.createDebugMesh(scene);\r
\r
const material = new THREE.MeshBasicMaterial({ color: 0x0000ff });\r
const mesh = new THREE.Mesh(cloth.geometry, material);\r
+ //const mesh = new THREE.WireframeGeometry(cloth.geometry);\r
+ //const line = new THREE.LineSegments(mesh);\r
+ //line.material.depthTest = false;\r
+ //line.material.opacity = 0.25;\r
+ //line.material.transparent = true;\r
scene.add(mesh);\r
\r
/**\r
* function called every frame\r
- * @param {number} dt - time passed since last frame\r
+ * @param {number} dt - time passed since last frame in ms\r
*/\r
function animate(dt) {\r
- requestAnimationFrame(animate);\r
+ cloth.simulate(dt/1000);\r
+\r
+ setTimeout(() => {\r
+ animate(frameTime);\r
+ }, frameTime);\r
renderer.render(scene, camera);\r
}\r
\r