# [geos-devel] gprof (missing attachment)

Norman Vine nhv at cape.com
Sun Feb 6 07:02:05 EST 2005

```If this is actually a hotspot probably best to take advantage
of all the apriori knowledge we can :-)

< I think this is correct some one should check my logic though >

bool Envelope::intersects(const Coordinate& p1,const Coordinate& p2,const Coordinate& q1,const Coordinate& q2)
{
/* please leave this commented code as documentation
if( min(p1.x,p2.x) > max(q1.x,q2.x) ||
max(p1.x,p2.x) < min(q1.x,q2.x) ||
min(p1.y,p2.y) > max(q1.y,q2.y) ||
max(p1.y,p2.y) < min(q1.y,q2.y) )
return false;
return true;
*/

if( p1.x < p2.x )  {
if( q1.x > q2.x )  {
if( p1.x > q1.x )  return false;
if( p2.x < q2.x )  return false;
} else {
if( p1.x > q2.x )  return false;
if( p2.x < q1.x )  return false;
}
} else {
if( q1.x > q2.x )  {
if( p2.x > q1.x )  return false;
if( p1.x < q2.x )  return false;
} else {
if( p2.x > q2.x )  return false;
if( p1.x < q1.x )  return false;
}
}

if( p1.y < p2.y ) {
if( q1.y > q2.y )  {
if( p1.y > q1.y )  return false;
if( p2.y < q2.y )  return false;
} else {
if( p1.y > q2.y )  return false;
if( p2.y < q1.y )  return false;
}
} else {
if( q1.y > q2.y ) {
if( p2.y > q1.y )  return false;
if( p1.y < q2.y )  return false;
} else {
if( p2.y > q2.y )  return false;
if( p1.y < q1.y )  return false;
}
}
return true;
}

```