HGridSys

ostrat.prid.phex.HGridSys
trait HGridSys extends TGridSys

System of hex tile grids. Can be a single HGrid or a system of multiple hex tile grids.

Attributes

Graph
Supertypes
trait TGridSys
class Any
Known subtypes

Members list

Concise view

Value members

Abstract methods

def defaultView(pxScale: Double): HGView

foreach hex edge / outer side's coordinate HSide, calls the effectual function.

foreach hex edge / outer side's coordinate HSide, calls the effectual function.

Attributes

def findStep(startHC: HCen, endHC: HCen): Option[HStep]

Finds step from Start HCen to target from HCen.

Finds step from Start HCen to target from HCen.

Attributes

def findStepEnd(startHC: HCen, step: HStep): Option[HCen]

Finds step from Start HCen to target from HCen.

Finds step from Start HCen to target from HCen.

Attributes

def flatHCoordToPt2(hCoord: HCoord): Pt2

Gives a flat projection of HCoords to Pt2s. For a simple singular HGrid system this is all that is required to translate between grid coordinates and standard 2 dimensional space. For multi grids it provides a simple way to display all the tiles in the grid system, but a more complex projection may be required for fully meaningful display representation. For Example world grid systems and multi layer square tile games will require their own specialist projections.

Gives a flat projection of HCoords to Pt2s. For a simple singular HGrid system this is all that is required to translate between grid coordinates and standard 2 dimensional space. For multi grids it provides a simple way to display all the tiles in the grid system, but a more complex projection may be required for fully meaningful display representation. For Example world grid systems and multi layer square tile games will require their own specialist projections.

Attributes

def foreach(f: HCen => Unit): Unit

foreachs over each HCen hex tile centre, applying the side effecting function.

foreachs over each HCen hex tile centre, applying the side effecting function.

Attributes

def getHCost(startCen: HCen, endCen: HCen): Int

H cost for A* path finding. To move 1 tile has a cost 2. This is because the G cost or actual cost is the sum of the terrain cost of tile of departure and the tile of arrival.

H cost for A* path finding. To move 1 tile has a cost 2. This is because the G cost or actual cost is the sum of the terrain cost of tile of departure and the tile of arrival.

Attributes

def hCenExists(r: Int, c: Int): Boolean

Boolean. True if the specified hex centre exists in this hex grid.

Boolean. True if the specified hex centre exists in this hex grid.

Attributes

def hCenSteps(hCen: HCen): HStepArr
def iForeach(f: (HCen, Int) => Unit): Unit

foreachs with index over each HCen hex tile centre, apply the side effecting function.

foreachs with index over each HCen hex tile centre, apply the side effecting function.

Attributes

def iForeach(init: Int)(f: (HCen, Int) => Unit): Unit

foreachs with index over each HCen hex tile centre, apply the side effecting function.

foreachs with index over each HCen hex tile centre, apply the side effecting function.

Attributes

def layerArrayIndex(r: Int, c: Int): Int

Gives the index into an Arr / Array of Tile data from its tile HCen. Use sideIndex and vertIndex methods to access Side and Vertex Arr / Array SeqDef data.

Gives the index into an Arr / Array of Tile data from its tile HCen. Use sideIndex and vertIndex methods to access Side and Vertex Arr / Array SeqDef data.

Attributes

foreach hex link / inner side's coordinate HSide, calls the effectual function.

foreach hex link / inner side's coordinate HSide, calls the effectual function.

Attributes

def rowsCombine[A <: AnyRef](layer: HCenLayer[A], indexingGSys: HGridSys): RArr[HCenRowPair[A]]

For each row combine data layer into RArr[HCenRowPair]. May be superceded

For each row combine data layer into RArr[HCenRowPair]. May be superceded

Attributes

Gives the index into an Arr / Array of side data from its tile HSide. Use arrIndex and vertIndex methods to access Side and Vertex Arr / Array data.

Gives the index into an Arr / Array of side data from its tile HSide. Use arrIndex and vertIndex methods to access Side and Vertex Arr / Array data.

Attributes

def sideTile1(hSide: HSide): HCen
def sideTile2(hSide: HSide): HCen

foreach Hex side's coordinate HSide, calls the effectual function.

foreach Hex side's coordinate HSide, calls the effectual function.

Attributes

def unsafeStepEnd(startCen: HCen, step: HStep): HCen

Concrete methods

def cornerLayerArrayIndex(hc: HCen, vertIndex: Int): Int

Gives the index into the unsafe backing Array of a HCornerLayer.

Gives the index into the unsafe backing Array of a HCornerLayer.

Attributes

def cornerLayerSpawn(superGrid: HGridSys, superLayer: HCornerLayer): HCornerLayer

Spawns a new HCornerLayer data layer for this HGridSys from the master HGridSys's data layer.

Spawns a new HCornerLayer data layer for this HGridSys from the master HGridSys's data layer.

Attributes

final def edgesMap[B, ArrT <: Arr[B]](f: HSide => B)(implicit build: ArrMapBuilder[B, ArrT]): ArrT

maps over each the grid systems outer side's coordinate HSide.

maps over each the grid systems outer side's coordinate HSide.

Attributes

def findPath(startCen: HCen, endCen: HCen)(fTerrCost: (HCen, HCen) => OptInt): Option[HCenArr]
def findPathList(startCen: HCen, endCen: HCen)(fTerrCost: (HCen, HCen) => OptInt): Option[List[HCen]]

Finds path from Start hex tile centre to end tile centre given the cost function parameter.

Finds path from Start hex tile centre to end tile centre given the cost function parameter.

Attributes

final def findStep(startR: Int, startC: Int, endR: Int, endC: Int): Option[HStep]

Finds step from Start HCen to target from HCen.

Finds step from Start HCen to target from HCen.

Attributes

final def flatMap[ArrT <: Arr[_]](f: HCen => ArrT)(implicit build: ArrFlatBuilder[ArrT]): ArrT

flatMaps from all hex tile centre coordinates to an Arr of type ArrT. The elements of this array can not be accessed from this grid class as the TileGrid structure is lost in the flatMap operation.

flatMaps from all hex tile centre coordinates to an Arr of type ArrT. The elements of this array can not be accessed from this grid class as the TileGrid structure is lost in the flatMap operation.

Attributes

final def hCenExists(hc: HCen): Boolean

Boolean. True if the HCen hex centre exists in this hex grid.

Boolean. True if the HCen hex centre exists in this hex grid.

Attributes

def hCenLayerSpawn[A <: AnyRef](superGrid: HGridSys, superLayer: HCenLayer[A])(implicit ct: ClassTag[A]): HCenLayer[A]

Spawns a new HCenLayer data layer for this HGridSys from the master HGridSys's HCenLayer data layer.

Spawns a new HCenLayer data layer for this HGridSys from the master HGridSys's HCenLayer data layer.

Attributes

The line segments of the inner sides defined in HCoord vertices.

The line segments of the inner sides defined in HCoord vertices.

Attributes

final def layerArrayIndex(hc: HCen): Int

Gives the index into an Arr / Array of Tile data from its tile HCen. Use sideIndex and vertIndex methods to access Side and Vertex Arr / Array data.

Gives the index into an Arr / Array of Tile data from its tile HCen. Use sideIndex and vertIndex methods to access Side and Vertex Arr / Array data.

Attributes

final def linksFlatMap[ArrT <: Arr[_]](f: HSide => ArrT)(implicit build: ArrFlatBuilder[ArrT]): ArrT

flatMaps over each inner hex Side's coordinate HSide..

flatMaps over each inner hex Side's coordinate HSide..

Attributes

final def linksMap[B, ArrT <: Arr[B]](f: HSide => B)(implicit build: ArrMapBuilder[B, ArrT]): ArrT

maps over each the grid systems link / inner side's coordinate HSide.

maps over each the grid systems link / inner side's coordinate HSide.

Attributes

final def linksOptMap[B, ArrB <: Arr[B]](f: HSide => Option[B])(implicit build: ArrMapBuilder[B, ArrB]): ArrB

OptMaps over each inner hex Side's coordinate HSide.

OptMaps over each inner hex Side's coordinate HSide.

Attributes

final def map[B, ArrB <: Arr[B]](f: HCen => B)(implicit build: ArrMapBuilder[B, ArrB]): ArrB

Maps over the HCen hex centre tile coordinates. B is used rather than A as a type parameter, as this method maps from HCen => B, corresponding to the standard Scala map function of A => B.

Maps over the HCen hex centre tile coordinates. B is used rather than A as a type parameter, as this method maps from HCen => B, corresponding to the standard Scala map function of A => B.

Attributes

final def newHCenArrLayer[A <: AnyRef](implicit ct: ClassTag[A]): HCenArrLayer[A]

New hex tile data layer of RArr[A].

New hex tile data layer of RArr[A].

Attributes

final def newHCenArrOfBuff[A <: AnyRef](implicit ct: ClassTag[A]): HCenBuffLayer[A]

Creates a new HCenBuffLayer An [[HCen] hex tile centre corresponding Arr of empty ArrayBuffers of the given or inferred type.

Creates a new HCenBuffLayer An [[HCen] hex tile centre corresponding Arr of empty ArrayBuffers of the given or inferred type.

Attributes

final def newHCenLayer[A <: AnyRef](value: A)(implicit ct: ClassTag[A]): HCenLayer[A]

New hex tile data layer.

New hex tile data layer.

Attributes

final def newHCenOptLayer[A <: AnyRef](implicit ct: ClassTag[A]): HCenOptLayer[A]

New hex tile data layer of optional data for this HGridSys.

New hex tile data layer of optional data for this HGridSys.

Attributes

def newSideOpts[A <: AnyRef](implicit ct: ClassTag[A]): HSideOptLayer[A]
final def optMap[B, ArrB <: Arr[B]](f: HCen => Option[B])(implicit build: ArrMapBuilder[B, ArrB]): ArrB

Maps from all hex tile centre coordinates to an Arr of type ArrT. The elements of this array can not be accessed from this grid class as the TileGrid structure is lost in the flatMap operation.

Maps from all hex tile centre coordinates to an Arr of type ArrT. The elements of this array can not be accessed from this grid class as the TileGrid structure is lost in the flatMap operation.

Attributes

The line segments of the outer sides defined in HCoord vertices.

The line segments of the outer sides defined in HCoord vertices.

Attributes

Spawns a new HSideBoolLayer data layer for this HGridSys from the master HGridSys's data layer.

Spawns a new HSideBoolLayer data layer for this HGridSys from the master HGridSys's data layer.

Attributes

final def sideLayerArrayIndex(hc: HSide): Int

Gives the index into an Arr / Array of Tile data from its tile HSide. Use arrIndex and vertIndex methods to access tile centre and Vertex Arr / Array data.

Gives the index into an Arr / Array of Tile data from its tile HSide. Use arrIndex and vertIndex methods to access tile centre and Vertex Arr / Array data.

Attributes

The line segments of the sides defined in HCoord vertices.

The line segments of the sides defined in HCoord vertices.

Attributes

def sideOptLayerSpawn[A <: AnyRef](superGrid: HGridSys, superLayer: HSideOptLayer[A])(implicit ct: ClassTag[A]): HSideOptLayer[A]

Spawns a new HSideOptlLayer data layer for this HGridSys from the master HGridSys's data layer.

Spawns a new HSideOptlLayer data layer for this HGridSys from the master HGridSys's data layer.

Attributes

def sideTiles(hSide: HSide): (HCen, HCen)
final def sides: HSideArr

The HSide hex side coordinates.

The HSide hex side coordinates.

Attributes

final def sidesFlatMap[ArrT <: Arr[_]](f: HSide => ArrT)(implicit build: ArrFlatBuilder[ArrT]): ArrT

flatMaps over each Hex Side's coordinate HSide.

flatMaps over each Hex Side's coordinate HSide.

Attributes

final def sidesMap[B, ArrT <: Arr[B]](f: HSide => B)(implicit build: ArrMapBuilder[B, ArrT]): ArrT

maps over each Hex Side's coordinate HSide in the hex grid system.

maps over each Hex Side's coordinate HSide in the hex grid system.

Attributes

final def sidesOptMap[B, ArrB <: Arr[B]](f: HSide => Option[B])(implicit build: ArrMapBuilder[B, ArrB]): ArrB

Optionally maps over each Hex Side's coordinate HSide.

Optionally maps over each Hex Side's coordinate HSide.

Attributes

final def vertArrIndex(hc: HSide): Int

Gives the index into an Arr / Array of Tile data from its tile HVert. Use arrIndex and sideArrIndex methods to access tile centre and side Arr / Array data.

Gives the index into an Arr / Array of Tile data from its tile HVert. Use arrIndex and sideArrIndex methods to access tile centre and side Arr / Array data.

Attributes

def vertArrIndex(r: Int, c: Int): Int

Gives the index into an Arr / Array of side data from its tile HVert. Use arrIndex and vertIndex methods to access tile centre and side Arr / Array data.

Gives the index into an Arr / Array of side data from its tile HVert. Use arrIndex and vertIndex methods to access tile centre and side Arr / Array data.

Attributes

final override def yRatio: Double

The conversion factor for c column tile grid coordinates. 1.0 / sqrt(3).

The conversion factor for c column tile grid coordinates. 1.0 / sqrt(3).

Attributes

Definition Classes

Inherited methods

The bottom most point in the grid where the value of y is minimum.

The bottom most point in the grid where the value of y is minimum.

Attributes

Inherited from:
TGridSys

The centre point as a Vec2. Not sure why this id implemented here.

The centre point as a Vec2. Not sure why this id implemented here.

Attributes

Inherited from:
TGridSys
final def flatMapRows[ArrT <: Arr[_]](f: Int => ArrT)(implicit build: ArrFlatBuilder[ArrT]): ArrT

flatMaps over each row number.

flatMaps over each row number.

Attributes

Inherited from:
TGridSys
def foreachRow(f: Int => Unit): Unit

For each row of tiles performs side effecting function on the r coordinate of the row.

For each row of tiles performs side effecting function on the r coordinate of the row.

Attributes

Inherited from:
TGridSys
def fullDisplayScale(dispWidth: Double, dispHeight: Double, padding: Double): Double

Attributes

Inherited from:
TGridSys
final def height: Double

Height of the tile grid system from furthest tile edge or vertex to furthest tile edge or vertex.

Height of the tile grid system from furthest tile edge or vertex to furthest tile edge or vertex.

Attributes

Inherited from:
TGridSys

The left most point in the grid where x is minimum.

The left most point in the grid where x is minimum.

Attributes

Inherited from:
TGridSys
final def mapRows[B, BB <: Arr[B]](f: Int => B)(implicit build: ArrMapBuilder[B, BB]): BB

maps over each row number.

maps over each row number.

Attributes

Inherited from:
TGridSys

Number of rows of tile centres. This will be different to the number of rows of sides and and will be different to the number of rows of vertices for HexGrids.

Number of rows of tile centres. This will be different to the number of rows of sides and and will be different to the number of rows of vertices for HexGrids.

Attributes

Inherited from:
TGridSys

The right most point in the grid where the value of x is maximum.

The right most point in the grid where the value of x is maximum.

Attributes

Inherited from:
TGridSys
def top: Double

The top most point in the grid where the value of y is maximum.

The top most point in the grid where the value of y is maximum.

Attributes

Inherited from:
TGridSys
final def width: Double

Width of the tile grid system from furthest tile edge or vertex to furthest tile edge or vertex.

Width of the tile grid system from furthest tile edge or vertex to furthest tile edge or vertex.

Attributes

Inherited from:
TGridSys

The centre of this grid in the X axis. this will be equal to the cCen Int value.

The centre of this grid in the X axis. this will be equal to the cCen Int value.

Attributes

Inherited from:
TGridSys

The centre of this grid in the y axis. For SqGrids this will be equal to the cCen Int value, but this is not the case for HGrids.

The centre of this grid in the y axis. For SqGrids this will be equal to the cCen Int value, but this is not the case for HGrids.

Attributes

Inherited from:
TGridSys

Concrete fields

final lazy val numInnerSides: Int

The number of inner sides in the hex grid system.

The number of inner sides in the hex grid system.

Attributes

final lazy val numOuterSides: Int

The number of outer sides in the hex grid system.

The number of outer sides in the hex grid system.

Attributes

final lazy val numSides: Int

The number of sides in the hex grid system.

The number of sides in the hex grid system.

Attributes

final lazy override val numTiles: Int

The total number of tile centres in this tile Grid system.

The total number of tile centres in this tile Grid system.

Attributes