GBGeometryMath
Fallback for square tiles, uses bounding box intersection
Fallback for square tiles, uses bounding box intersection
Version: v5.0.0
Inherits: RefCounted
Source: gb_geometry_math.gd
Parsing: AST-based for maximum accuracy with symbol typing
Methods
polygon_intersection_area
Signature: static polygon_intersection_area(poly_a: PackedVector2Array, poly_b: PackedVector2Array) -> float
Returns: float - Area of intersection (0.0 if no overlap).
Returns: float
Static: true
Parameters:
poly_a: PackedVector2Arraypoly_b: PackedVector2Array
get_tile_polygon
Signature: static get_tile_polygon(tile_top_left_pos: Vector2, tile_size: Vector2, tile_shape: TileSet.TileShape: Variant) -> PackedVector2Array
Returns: PackedVector2Array - Polygon corners in counterclockwise order.
Returns: PackedVector2Array
Static: true
Parameters:
tile_top_left_pos: Vector2tile_size: Vector2tile_shape: TileSet.TileShape: Variant
intersection_area_with_tile
Signature: static intersection_area_with_tile(polygon: PackedVector2Array, tile_top_left_pos: Vector2, tile_size: Vector2, tile_shape: TileSet.TileShape: Variant) -> float
Returns: float - Area of intersection (0.0 if no overlap).
Returns: float
Static: true
Parameters:
polygon: PackedVector2Arraytile_top_left_pos: Vector2tile_size: Vector2tile_shape: TileSet.TileShape: Variant
does_polygon_overlap_tile
Signature: static does_polygon_overlap_tile(polygon: PackedVector2Array, tile_top_left_pos: Vector2, tile_size: Vector2, tile_shape: TileSet.TileShape: Variant, epsilon: float) -> bool
Returns: bool - True if intersection area > epsilon.
Returns: bool
Static: true
Parameters:
polygon: PackedVector2Arraytile_top_left_pos: Vector2tile_size: Vector2tile_shape: TileSet.TileShape: Variantepsilon: float
does_shape_overlap_tile_optimized
Signature: static does_shape_overlap_tile_optimized(shape: Shape2D, shape_transform: Transform2D, tile_top_left_pos: Vector2, tile_size: Vector2, tile_shape: TileSet.TileShape: Variant, epsilon: float = 0.01) -> bool
Returns: bool - True if shape overlaps the tile.
Returns: bool
Static: true
Parameters:
shape: Shape2Dshape_transform: Transform2Dtile_top_left_pos: Vector2tile_size: Vector2tile_shape: TileSet.TileShape: Variantepsilon: float(optional, default:0.01)
does_polygon_overlap_tile_optimized
Signature: static does_polygon_overlap_tile_optimized(polygon: PackedVector2Array, tile_top_left_pos: Vector2, tile_size: Vector2, tile_shape: TileSet.TileShape: Variant, epsilon: float = 0.01) -> bool
Returns: bool - True if polygon overlaps the tile significantly.
Returns: bool
Static: true
Parameters:
polygon: PackedVector2Arraytile_top_left_pos: Vector2tile_size: Vector2tile_shape: TileSet.TileShape: Variantepsilon: float(optional, default:0.01)
_is_axis_aligned_rectangle
Signature: static _is_axis_aligned_rectangle(polygon: PackedVector2Array) -> bool
Returns: bool - True if axis-aligned rectangle.
Returns: bool
Static: true
Parameters:
polygon: PackedVector2Array
get_polygon_bounds
Signature: static get_polygon_bounds(polygon: PackedVector2Array) -> Rect2
Returns: Rect2 - Bounding rectangle of the polygon.
Returns: Rect2
Static: true
Parameters:
polygon: PackedVector2Array
convert_shape_to_polygon
Signature: static convert_shape_to_polygon(shape: Shape2D, transform: Transform2D) -> PackedVector2Array
Returns: PackedVector2Array - Polygon representation of the shape.
Returns: PackedVector2Array
Static: true
Parameters:
shape: Shape2Dtransform: Transform2D
intersection_polygon_area
Signature: static intersection_polygon_area(points: PackedVector2Array) -> float
This is used in overlap checks to ensure that only true area overlaps (not just edge or point contacts) are counted.
Returns: float
Static: true
Parameters:
points: PackedVector2Array
is_exact_polygon_match
Signature: static is_exact_polygon_match(poly_a: PackedVector2Array, poly_b: PackedVector2Array) -> bool
Checks if two polygons are exactly the same (vertex by vertex)
Returns: bool
Static: true
Parameters:
poly_a: PackedVector2Arraypoly_b: PackedVector2Array
exact_polygon_area
Signature: static exact_polygon_area(poly: PackedVector2Array) -> float
Returns area for exact polygon match
Returns: float
Static: true
Parameters:
poly: PackedVector2Array