( p1: THREE.Vector3, p2: THREE.Vector3, p3: THREE.Vector3 )
| 17 | } |
| 18 | |
| 19 | function triangleNormal( |
| 20 | p1: THREE.Vector3, |
| 21 | p2: THREE.Vector3, |
| 22 | p3: THREE.Vector3 |
| 23 | ): THREE.Vector3 { |
| 24 | return new THREE.Vector3() |
| 25 | .subVectors(p2, p1) |
| 26 | .cross(new THREE.Vector3().subVectors(p3, p1)) |
| 27 | .normalize(); |
| 28 | } |
| 29 | |
| 30 | function expectIdentity(sim3d: Sim3d): void { |
| 31 | expect(sim3d.scale).toBe(1); |
no outgoing calls
no test coverage detected