GridMath

AUTO-GENERATED FILE – DO NOT EDIT MANUALLY

This page documents the supported public API surface only. Private, internal, benchmark, test, and implementation-detail types are intentionally omitted.

Declaration

1
public static class GridMath

Summary

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

Metadata

Namespace: GridPlacement.Core.Grid

Source File: cs/Core/Math/GridMath.cs

Assembly: GridPlacement.Core

Type: class

Methods

WorldToGrid

1
2
3
4
public static GridPosition WorldToGrid(
    CoreVector2 worldPosition,
    CoreVector2 tileSize
)

Convert a world position to tile coordinates.

Parameters

NameDescription
worldPositionThe world position to convert
tileSizeSize of each tile in world units

Returns

Grid position representing the tile coordinates


GridToWorld

1
public static CoreVector2 GridToWorld(GridPosition gridPosition)

Convert grid coordinates to world position (tile center).

Parameters

NameDescription
gridPositionThe grid position to convert

Returns

World position at the center of the tile


GridToWorld

1
2
3
4
public static CoreVector2 GridToWorld(
    GridPosition gridPosition,
    CoreVector2 tileSize
)

Convert grid coordinates to world position with custom tile size.

Parameters

NameDescription
gridPositionThe grid position to convert
tileSizeCustom tile size

Returns

World position at the center of the tile


SnapToTileCenter

1
2
3
4
public static CoreVector2 SnapToTileCenter(
    CoreVector2 worldPosition,
    CoreVector2 tileSize
)

Snap a world position to the nearest tile center.

Parameters

NameDescription
worldPositionWorld position to snap
tileSizeSize of each tile

Returns

Snapped world position


GetTileBounds

1
2
3
4
public static CoreRect2 GetTileBounds(
    GridPosition gridPosition,
    CoreVector2 tileSize
)

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

Parameters

NameDescription
gridPositionGrid position
tileSizeSize of each tile

Returns

Rectangle representing the tile bounds in world coordinates


IsPositionInTile

1
2
3
4
5
public static bool IsPositionInTile(
    CoreVector2 worldPosition,
    GridPosition gridPosition,
    CoreVector2 tileSize
)

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

Parameters

NameDescription
worldPositionWorld position to check
gridPositionGrid position of the tile
tileSizeSize of each tile

Returns

True if the world position is within the tile bounds


GetTileAtPosition

1
2
3
4
public static GridPosition GetTileAtPosition(
    CoreVector2 worldPosition,
    CoreVector2 tileSize
)

Get the tile at a world position.

Parameters

NameDescription
worldPositionWorld position
tileSizeSize of each tile

Returns

Grid position of the tile containing the world position


GridDistanceToWorld

1
2
3
4
public static float GridDistanceToWorld(
    GridPosition from,
    GridPosition to
)

Calculate the distance between two grid positions in world units.

Parameters

NameDescription
fromStarting grid position
toTarget grid position

Returns

Distance in world units


LimitToMaxDistance

1
2
3
4
5
6
public static GridPosition LimitToMaxDistance(
    GridPosition source,
    GridPosition target,
    int maxDistance,
    bool useManhattanDistance = true
)

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

Parameters

NameDescription
sourceSource grid position
targetTarget grid position to limit
maxDistanceMaximum allowed distance in tiles
useManhattanDistanceIf true, use Manhattan distance; if false, use Chebyshev distance

Returns

Limited grid position


SnapToRegion

1
2
3
4
5
public static GridPosition SnapToRegion(
    GridPosition position,
    GridPosition regionMin,
    GridPosition regionMax
)

Snap a grid position to be within a rectangular region.

Parameters

NameDescription
positionPosition to snap
regionMinMinimum bounds of region
regionMaxMaximum bounds of region

Returns

Snapped grid position


IsValidPosition

1
2
3
4
public static bool IsValidPosition(
    GridPosition position,
    (int x, int y, int width, int height) usedRect
)

Check if a grid position is within a used rectangle.

Parameters

NameDescription
positionPosition to check
usedRectRectangle representing used tiles (x, y, width, height)

Returns

True if position is within the used rectangle


IsValidPosition

1
2
3
4
5
public static bool IsValidPosition(
    GridPosition position,
    CoreVector2I minBounds,
    CoreVector2I maxBounds
)

Check if a grid position is valid within bounds.

Parameters

NameDescription
positionPosition to check
minBoundsMinimum bounds
maxBoundsMaximum bounds

Returns

True if position is within bounds


GetRegionCenter

1
2
3
4
public static GridPosition GetRegionCenter(
    GridPosition regionMin,
    GridPosition regionMax
)

Get the center position of a rectangular region.

Parameters

NameDescription
regionMinMinimum bounds of region
regionMaxMaximum bounds of region

Returns

Center grid position


GetRegionArea

1
2
3
4
public static int GetRegionArea(
    GridPosition regionMin,
    GridPosition regionMax
)

Calculate the area of a rectangular region in tiles.

Parameters

NameDescription
regionMinMinimum bounds of region
regionMaxMaximum bounds of region

Returns

Area in number of tiles


GetRegionPositions

1
2
3
4
public static IEnumerable<GridPosition> GetRegionPositions(
    GridPosition regionMin,
    GridPosition regionMax
)

Get all positions in a rectangular region.

Parameters

NameDescription
regionMinMinimum bounds of region
regionMaxMaximum bounds of region

Returns

Enumerable of all grid positions in the region


RegionsOverlap

1
2
3
4
5
6
public static bool RegionsOverlap(
    GridPosition min1,
    GridPosition max1,
    GridPosition min2,
    GridPosition max2
)

Check if two rectangular regions overlap.

Parameters

NameDescription
min1Minimum bounds of first region
max1Maximum bounds of first region
min2Minimum bounds of second region
max2Maximum bounds of second region

Returns

True if regions overlap


GetOverlapRegion

1
2
3
4
5
public static(
    GridPosition min,
    GridPosition max)? GetOverlapRegion(
        GridPosition min1, GridPosition max1, GridPosition min2, GridPosition max2
)

Get the overlapping region between two rectangular regions.

Parameters

NameDescription
min1Minimum bounds of first region
max1Maximum bounds of first region
min2Minimum bounds of second region
max2Maximum bounds of second region

Returns

Overlapping region as (min, max) tuple, or null if no overlap


GridRectToWorld

1
2
3
4
5
public static CoreRect2 GridRectToWorld(
    GridPosition gridMin,
    GridPosition gridMax,
    CoreVector2 tileSize
)

Convert a grid-based rectangle to world coordinates.

Parameters

NameDescription
gridMinMinimum grid position
gridMaxMaximum grid position
tileSizeSize of each tile

Returns

Rectangle in world coordinates


WorldRectToGrid

1
2
3
4
public static(
    GridPosition min,
    GridPosition max) WorldRectToGrid(CoreRect2 worldRect, CoreVector2 tileSize
)

Convert a world rectangle to grid coordinates.

Parameters

NameDescription
worldRectRectangle in world coordinates
tileSizeSize of each tile

Returns

Rectangle in grid coordinates as (min, max) tuple