GridMath

GridMath

Static utility class for grid-based mathematical operations. Provides POCS implementation of grid positioning logic without Godot dependencies. Supports coordinate conversion, tile-based movement, and grid geometry calculations. Shared-safe: stateless and thread-safe; safe to reuse across user scopes. Ported from: godot/addons/grid_building/shared/utils/positioning/gb_positioning_2d_utils.gd

Project: GridPlacement v6.0
Layer: Core
Source: Core/Math/GridMath.cs
Namespace: GridBuilding.Core.Grid
Kind: class

Parsing Method: AST-based (Roslyn) - NOT regex

⚠️ IMPORTANT: This documentation was generated using AST parsing, not regex.

Methods

WorldToGrid

Convert a world position to tile coordinates.

Returns: GridPosition

Parameters:

  • CoreVector2 worldPosition
  • CoreVector2 tileSize

GridToWorld

Convert grid coordinates to world position (tile center).

Returns: CoreVector2

Parameters:

  • GridPosition gridPosition

GridToWorld

Convert grid coordinates to world position with custom tile size.

Returns: CoreVector2

Parameters:

  • GridPosition gridPosition
  • CoreVector2 tileSize

SnapToTileCenter

Snap a world position to the nearest tile center.

Returns: CoreVector2

Parameters:

  • CoreVector2 worldPosition
  • CoreVector2 tileSize

GetTileBounds

Calculate the tile bounds (rectangular area) for a given grid position.

Returns: CoreRect2

Parameters:

  • GridPosition gridPosition
  • CoreVector2 tileSize

IsPositionInTile

Check if a world position is within the bounds of a specific tile.

Returns: bool

Parameters:

  • CoreVector2 worldPosition
  • GridPosition gridPosition
  • CoreVector2 tileSize

GetTileAtPosition

Get the tile at a world position.

Returns: GridPosition

Parameters:

  • CoreVector2 worldPosition
  • CoreVector2 tileSize

GridDistanceToWorld

Calculate the distance between two grid positions in world units.

Returns: float

Parameters:

  • GridPosition from
  • GridPosition to

LimitToMaxDistance

Limit a target tile to be within maximum distance from source tile.

Returns: GridPosition

Parameters:

  • GridPosition source
  • GridPosition target
  • int maxDistance
  • bool useManhattanDistance

SnapToRegion

Snap a grid position to be within a rectangular region.

Returns: GridPosition

Parameters:

  • GridPosition position
  • GridPosition regionMin
  • GridPosition regionMax

IsValidPosition

Check if a grid position is within a used rectangle.

Returns: bool

Parameters:

  • GridPosition position
  • (int x, int y, int width, int height) usedRect

IsValidPosition

Check if a grid position is valid within bounds.

Returns: bool

Parameters:

  • GridPosition position
  • CoreVector2I minBounds
  • CoreVector2I maxBounds

GetRegionCenter

Get the center position of a rectangular region.

Returns: GridPosition

Parameters:

  • GridPosition regionMin
  • GridPosition regionMax

GetRegionArea

Calculate the area of a rectangular region in tiles.

Returns: int

Parameters:

  • GridPosition regionMin
  • GridPosition regionMax

GetRegionPositions

Get all positions in a rectangular region.

Returns: IEnumerable<GridPosition>

Parameters:

  • GridPosition regionMin
  • GridPosition regionMax

RegionsOverlap

Check if two rectangular regions overlap.

Returns: bool

Parameters:

  • GridPosition min1
  • GridPosition max1
  • GridPosition min2
  • GridPosition max2

GetOverlapRegion

Get the overlapping region between two rectangular regions.

Returns: (GridPosition min, GridPosition max)?

Parameters:

  • GridPosition min1
  • GridPosition max1
  • GridPosition min2
  • GridPosition max2

GridRectToWorld

Convert a grid-based rectangle to world coordinates.

Returns: CoreRect2

Parameters:

  • GridPosition gridMin
  • GridPosition gridMax
  • CoreVector2 tileSize

WorldRectToGrid

Convert a world rectangle to grid coordinates.

Returns: (GridPosition min, GridPosition max)

Parameters:

  • CoreRect2 worldRect
  • CoreVector2 tileSize