Sign in to follow this  
rpiller

Mouse in region

Recommended Posts

Does anyone know where I can find any code that checks if the mouse is in a region that can be defined as any kind of region? Checking for a rectangle is easy, but checking for any polygon region I'm not sure how to go about doing that.

Share this post


Link to post
Share on other sites

This is a snippet I found on the internet a while ago, seemed to work fine for everything I threw at it.

Don't ask me about the math behind it ;)

xp and yp are point to an array of corners, x,y is the point you want to check:

template < typename T >
  bool is_point_in_poly( int num_edges, T *xp, T *yp, T x, T y)
  {
    int i, j;
    bool c = 0;
    for (i = 0, j = num_edges-1; i < num_edges; j = i++) {
      if ((((yp[i]<=y) && (y<yp[j])) ||
           ((yp[j]<=y) && (y<yp[i]))) &&
          (x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i]))

 
        c = !c;
    }
    return c;
  }
Edited by Endurion

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this