// [O] CYLINDER - CYLINDER bool CylinderCollider::Collide( const CylinderCollider& other ) const { float s, t; glm::vec3 c1, c2; glm::vec3 sqrDistance( ClosestPtSegmentSegment( position, end, other.position, other.end, s, t, c1, c2 ) ); float radiusSum = radius + other.radius; return sqrDistance.x <= ( radiusSum * radiusSum ); }
int TestCapsuleCapsule(Capsule c1, Capsule c2) { float s, t; V3 p1, p2; float dist = ClosestPtSegmentSegment(c1.a, c1.b, c2.a, c2.b, &t, &s, &p1, &p2); float radius = c1.r + c2.r; return dist <= radius * radius; }