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 worldPositionCoreVector2 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 gridPositionCoreVector2 tileSize
SnapToTileCenter
Snap a world position to the nearest tile center.
Returns: CoreVector2
Parameters:
CoreVector2 worldPositionCoreVector2 tileSize
GetTileBounds
Calculate the tile bounds (rectangular area) for a given grid position.
Returns: CoreRect2
Parameters:
GridPosition gridPositionCoreVector2 tileSize
IsPositionInTile
Check if a world position is within the bounds of a specific tile.
Returns: bool
Parameters:
CoreVector2 worldPositionGridPosition gridPositionCoreVector2 tileSize
GetTileAtPosition
Get the tile at a world position.
Returns: GridPosition
Parameters:
CoreVector2 worldPositionCoreVector2 tileSize
GridDistanceToWorld
Calculate the distance between two grid positions in world units.
Returns: float
Parameters:
GridPosition fromGridPosition to
LimitToMaxDistance
Limit a target tile to be within maximum distance from source tile.
Returns: GridPosition
Parameters:
GridPosition sourceGridPosition targetint maxDistancebool useManhattanDistance
SnapToRegion
Snap a grid position to be within a rectangular region.
Returns: GridPosition
Parameters:
GridPosition positionGridPosition regionMinGridPosition 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 positionCoreVector2I minBoundsCoreVector2I maxBounds
GetRegionCenter
Get the center position of a rectangular region.
Returns: GridPosition
Parameters:
GridPosition regionMinGridPosition regionMax
GetRegionArea
Calculate the area of a rectangular region in tiles.
Returns: int
Parameters:
GridPosition regionMinGridPosition regionMax
GetRegionPositions
Get all positions in a rectangular region.
Returns: IEnumerable<GridPosition>
Parameters:
GridPosition regionMinGridPosition regionMax
RegionsOverlap
Check if two rectangular regions overlap.
Returns: bool
Parameters:
GridPosition min1GridPosition max1GridPosition min2GridPosition max2
GetOverlapRegion
Get the overlapping region between two rectangular regions.
Returns: (GridPosition min, GridPosition max)?
Parameters:
GridPosition min1GridPosition max1GridPosition min2GridPosition max2
GridRectToWorld
Convert a grid-based rectangle to world coordinates.
Returns: CoreRect2
Parameters:
GridPosition gridMinGridPosition gridMaxCoreVector2 tileSize
WorldRectToGrid
Convert a world rectangle to grid coordinates.
Returns: (GridPosition min, GridPosition max)
Parameters:
CoreRect2 worldRectCoreVector2 tileSize