capsuleIntersect method
Implementation
OctreeData? capsuleIntersect(Capsule capsule) {
_capsule.copy(capsule);
List<Triangle> triangles = getCapsuleTriangles(_capsule, []);
bool hit = false;
for (int i = 0; i < triangles.length; i++) {
OctreeData? result = triangleCapsuleIntersect(_capsule, triangles[i]);
if (result != null) {
hit = true;
_capsule.translate(result.normal.multiplyScalar(result.depth));
}
}
if (hit) {
Vector3 collisionVector = _capsule.getCenter(Vector3()).sub(capsule.getCenter(_v1));
num depth = collisionVector.length();
return OctreeData(normal: collisionVector.normalize(), depth: depth);
}
return null;
}