+checkIntersect() {\r
+ let npw = this.numPointsWidth;\r
+ function getX(i, ) { return i % npw; }\r
+ function getY(i) { return Math.floor(i / npw); }\r
+ for (let i in this.geometry.vertices) {\r
+ for (let j in this.geometry.vertices) {\r
+ this.vertexRigidness[i] = false;\r
+ this.vertexRigidness[j] = false;\r
+ if (i == j || (Math.abs(getX(i) - getX(j)) == 1 && Math.abs(getY(i) - getY(j)) == 1))\r
+ continue;\r
+ let posI = this.geometry.vertices[i];\r
+ let posJ = this.geometry.vertices[j];\r
+ let dist = posI.distanceTo(posJ);\r
+ const collisionDistance = 0.5;\r
+ if (dist < collisionDistance) {\r
+ this.vertexRigidness[i] = true;\r
+ this.vertexRigidness[j] = true;\r
+ let diff = this.geometry.vertices[i].clone().sub(this.geometry.vertices[j]).normalize().multiplyScalar((collisionDistance - dist) * 1.001 / 2);\r
+ this.geometry.vertices[i].add(diff);\r
+ this.geometry.vertices[j].sub(diff);\r
+ console.log(this.geometry.vertices[i].distanceTo(this.geometry.vertices[j]));\r
+ }\r
+ }\r
+ }\r
+}\r