Example #1
0
bool MapObject::intersects(const MapObject& object) const
{
	//check if distance between objects is less than sum of furthest points
	float distance = Helpers::Vectors::getLength(m_centrePoint + object.m_centrePoint);
	if(distance > (m_furthestPoint + object.m_furthestPoint)) return false;

	//check intersection if either object contains a point of the other
    const auto& otherTransform = object.getTransform();
	for(auto& p : object.m_polypoints)
		if(contains(otherTransform.transformPoint(p))) return true;

    const auto& transform = getTransform();
	for(auto& p : m_polypoints)
		if(object.contains(transform.transformPoint(p))) return true;

	return false;
}