Module: gears.geometry
Helper functions used to compute geometries.
When this module refer to a geometry table, this assume a table with at least an x, y, width and height keys and numeric values.
Info:
- Copyright: 2008 Julien Danjou
 - 
                    Originally authored by: Julien Danjou <julien@danjou.info>
(Full contributors list available on our github project) 
Static module functions
| gears.geometry.rectangle.get_square_distance (geom, x, y) -> number | Get the square distance between a rectangle and a point. | |
| gears.geometry.rectangle.get_closest_by_coord (list, x, y) -> () | 
        Return the closest rectangle from list for a given point.
       | 
    |
| gears.geometry.rectangle.get_by_coord (list, x, y) -> () | Return the rectangle containing the [x, y] point. | |
| gears.geometry.rectangle.get_in_direction (dir, recttbl, cur) -> () | Get the nearest rectangle in the given direction. | |
| gears.geometry.rectangle.are_equal (a, b) -> boolean | Return true if the area are exactly identical. | |
| gears.geometry.rectangle.is_inside (a, b) -> boolean | 
        Return if rectangle a is within rectangle b.
       | 
    |
| gears.geometry.rectangle.area_intersect_area (a, b) -> () | Check if an area intersect another area. | |
| gears.geometry.rectangle.get_intersection (a, b) -> table | Get the intersect area between a and b. | |
| gears.geometry.rectangle.area_remove (areas, elem) -> () | Remove an area from a list, splitting the space between several area that can overlap. | |
Static module functions
- gears.geometry.rectangle.get_square_distance (geom, x, y) -> number
 - 
    Get the square distance between a rectangle and a point.
    
Parameters:
- geom A rectangle
        
- x number The horizontal coordinate
 - y number The vertical coordinate
 - width number The rectangle width
 - height number The rectangle height
 
 
- x number X coordinate of point
 - y number Y coordinate of point
 Returns:
- 
           number
        The squared distance of the rectangle to the provided point.
    
 
 - geom A rectangle
        
 - gears.geometry.rectangle.get_closest_by_coord (list, x, y) -> ()
 - 
    Return the closest rectangle from 
listfor a given point.Parameters:
- list table A list of geometry tables.
 - x number The x coordinate
 - y number The y coordinate
 
Returns:
- 
        The key from the closest geometry.
    
 
 - gears.geometry.rectangle.get_by_coord (list, x, y) -> ()
 - 
    Return the rectangle containing the [x, y] point. 
Note that if multiple element from the geometry list contains the point, the returned result is nondeterministic.
Parameters:
- list table A list of geometry tables.
 - x number The x coordinate
 - y number The y coordinate
 
Returns:
- 
        The key from the closest geometry. In case no result is found, nil
  is returned.
    
 
 - gears.geometry.rectangle.get_in_direction (dir, recttbl, cur) -> ()
 - 
    Get the nearest rectangle in the given direction.  Every rectangle is specified as a table
 with x, y, width, height keys, the same as client or screen geometries.
    
Parameters:
- dir string The direction, can be either up, down, left or right.
 - recttbl table A table of rectangle specifications.
 - cur table The current rectangle.
 
Returns:
- 
        The index for the rectangle in recttbl closer to cur in the given direction. nil if none found.
    
 
 - gears.geometry.rectangle.are_equal (a, b) -> boolean
 - 
    Return true if the area are exactly identical. 
The areas are table with a
x,y,widthandheightkeys.Parameters:
Returns:
- 
           boolean
        If the areas are identical.
    
 
 - gears.geometry.rectangle.is_inside (a, b) -> boolean
 - 
    Return if rectangle 
ais within rectangleb.This includes the edges. 100% of
aarea has to be withinbfor this function to return true. If you wish to know if any part ofaintersect withb, use gears.geometry.rectangle.get_intersection.Parameters:
Returns:
- 
           boolean
        If the areas are identical.
    
 
See also:
 - gears.geometry.rectangle.area_intersect_area (a, b) -> ()
 - 
    Check if an area intersect another area.
    
Parameters:
Returns:
- 
        True if they intersect, false otherwise.
    
 
 - gears.geometry.rectangle.get_intersection (a, b) -> table
 - 
    Get the intersect area between a and b.
    
Parameters:
- a The area.
        
- x number The horizontal coordinate
 - y number The vertical coordinate
 - width number The rectangle width
 - height number The rectangle height
 
 
- b The other area.
 - x number The horizontal coordinate
 - y number The vertical coordinate
 - width number The rectangle width
 - height number The rectangle height
 
Returns:
- 
           table
        The intersect area.
    
 
See also:
 - a The area.
        
 - gears.geometry.rectangle.area_remove (areas, elem) -> ()
 - 
    Remove an area from a list, splitting the space between several area that
 can overlap.
    
Parameters:
- areas table Table of areas.
 - elem Area to remove.
        
- x number The horizontal coordinate
 - y number The vertical coordinate
 - width number The rectangle width
 - height number The rectangle height
 
 
Returns:
- 
        The new area list.