Header menu logo Mibo

Hex2DSpatial Module

Nested modules

Modules Description

Internal

Internal helpers for hex spatial operations. Not intended for direct use.

Functions and values

Function or value Description

cubeRound fq fr fs

Full Usage: cubeRound fq fr fs

Parameters:
    fq : float32
    fr : float32
    fs : float32

Returns: int * int * int
Modifiers: inline

Rounds fractional cube coordinates to the nearest integer hex.

fq : float32
fr : float32
fs : float32
Returns: int * int * int

cubeToOffset q r orientation

Full Usage: cubeToOffset q r orientation

Parameters:
Returns: int * int
Modifiers: inline

Converts cube (q, r, s) to offset (col, row) coordinates.

q : int
r : int
orientation : HexOrientation
Returns: int * int

distance c1 r1 c2 r2 grid

Full Usage: distance c1 r1 c2 r2 grid

Parameters:
    c1 : int
    r1 : int
    c2 : int
    r2 : int
    grid : HexGrid<'T>

Returns: int
Modifiers: inline
Type parameters: 'T

Hex distance using cube coordinates.

c1 : int
r1 : int
c2 : int
r2 : int
grid : HexGrid<'T>
Returns: int

findPath startCol startRow goalCol goalRow isPassable costFn grid

Full Usage: findPath startCol startRow goalCol goalRow isPassable costFn grid

Parameters:
    startCol : int
    startRow : int
    goalCol : int
    goalRow : int
    isPassable : int -> int -> bool
    costFn : int -> int -> int -> int -> float32
    grid : HexGrid<'T>

Returns: (int * int)[] voption
Modifiers: inline
Type parameters: 'T

A* pathfinding on a hex grid. Returns the shortest path from start to goal as an array of hex coordinates, or ValueNone if no path exists.

startCol : int
startRow : int
goalCol : int
goalRow : int
isPassable : int -> int -> bool
costFn : int -> int -> int -> int -> float32
grid : HexGrid<'T>
Returns: (int * int)[] voption

floodFill col row predicate grid

Full Usage: floodFill col row predicate grid

Parameters:
    col : int
    row : int
    predicate : int -> int -> bool
    grid : HexGrid<'T>

Returns: (int * int)[]
Modifiers: inline
Type parameters: 'T

Flood fill from (col, row) using BFS over hex neighbors. Returns all reachable hex cells for which `predicate` returns true.

col : int
row : int
predicate : int -> int -> bool
grid : HexGrid<'T>
Returns: (int * int)[]

inRange col row range grid

Full Usage: inRange col row range grid

Parameters:
    col : int
    row : int
    range : int
    grid : HexGrid<'T>

Returns: (int * int)[]
Modifiers: inline
Type parameters: 'T

Returns all hex cells within `range` hex steps of (col, row).

col : int
row : int
range : int
grid : HexGrid<'T>
Returns: (int * int)[]

lineOfSight c1 r1 c2 r2 isBlocked grid

Full Usage: lineOfSight c1 r1 c2 r2 isBlocked grid

Parameters:
    c1 : int
    r1 : int
    c2 : int
    r2 : int
    isBlocked : int -> int -> bool
    grid : HexGrid<'T>

Returns: bool
Modifiers: inline
Type parameters: 'T

Returns true if a hex line from (c1,r1) to (c2,r2) is clear of blocked cells. The start cell is not checked; the goal IS checked.

c1 : int
r1 : int
c2 : int
r2 : int
isBlocked : int -> int -> bool
grid : HexGrid<'T>
Returns: bool

lineOfSightCells c1 r1 c2 r2 isBlocked grid

Full Usage: lineOfSightCells c1 r1 c2 r2 isBlocked grid

Parameters:
    c1 : int
    r1 : int
    c2 : int
    r2 : int
    isBlocked : int -> int -> bool
    grid : HexGrid<'T>

Returns: (int * int)[]
Modifiers: inline
Type parameters: 'T

Returns the visible hex cells along a line from (c1,r1) toward (c2,r2), stopping at the first blocked cell.

c1 : int
r1 : int
c2 : int
r2 : int
isBlocked : int -> int -> bool
grid : HexGrid<'T>
Returns: (int * int)[]

neighbors col row grid

Full Usage: neighbors col row grid

Parameters:
    col : int
    row : int
    grid : HexGrid<'T>

Returns: (int * int)[]
Modifiers: inline
Type parameters: 'T

Returns the 6 hex neighbors of (col, row), filtered to grid bounds.

col : int
row : int
grid : HexGrid<'T>
Returns: (int * int)[]

offsetToCube col row orientation

Full Usage: offsetToCube col row orientation

Parameters:
Returns: int * int * int
Modifiers: inline

Converts offset (col, row) to cube (q, r, s) coordinates.

col : int
row : int
orientation : HexOrientation
Returns: int * int * int

ring col row radius grid

Full Usage: ring col row radius grid

Parameters:
    col : int
    row : int
    radius : int
    grid : HexGrid<'T>

Returns: (int * int)[]
Modifiers: inline
Type parameters: 'T

Returns all hex cells exactly `radius` hex steps from (col, row).

col : int
row : int
radius : int
grid : HexGrid<'T>
Returns: (int * int)[]

spiral col row radius grid

Full Usage: spiral col row radius grid

Parameters:
    col : int
    row : int
    radius : int
    grid : HexGrid<'T>

Returns: (int * int)[]
Modifiers: inline
Type parameters: 'T

Returns all hex cells within `radius` hex steps, in spiral order (center first, then ring 1, ring 2, ...).

col : int
row : int
radius : int
grid : HexGrid<'T>
Returns: (int * int)[]

worldToCell worldPos grid

Full Usage: worldToCell worldPos grid

Parameters:
Returns: (int * int) voption
Modifiers: inline
Type parameters: 'T

Converts a world position to the nearest hex cell coordinates. Returns ValueNone if outside the grid.

worldPos : Vector2
grid : HexGrid<'T>
Returns: (int * int) voption

Type something to start searching.