GBGeometryMath

Fallback for square tiles, uses bounding box intersection

sort Weight: 10

Fallback for square tiles, uses bounding box intersection

Version: v5.0.0

STABLE

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: PackedVector2Array
  • poly_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: Vector2
  • tile_size: Vector2
  • tile_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: PackedVector2Array
  • tile_top_left_pos: Vector2
  • tile_size: Vector2
  • tile_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: PackedVector2Array
  • tile_top_left_pos: Vector2
  • tile_size: Vector2
  • tile_shape: TileSet.TileShape: Variant
  • epsilon: 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: Shape2D
  • shape_transform: Transform2D
  • tile_top_left_pos: Vector2
  • tile_size: Vector2
  • tile_shape: TileSet.TileShape: Variant
  • epsilon: 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: PackedVector2Array
  • tile_top_left_pos: Vector2
  • tile_size: Vector2
  • tile_shape: TileSet.TileShape: Variant
  • epsilon: 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: Shape2D
  • transform: 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: PackedVector2Array
  • poly_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