HGridSys

ostrat.prid.phex.HGridSys
trait HGridSys extends HexStruct, TGridSys

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

Attributes

Graph
Supertypes
trait TGridSys
trait HexStruct
trait TCenStruct
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Value members

Abstract methods

def adjTilesOfTile(origR: Int, origC: Int): HCenArr

Returns a clockwise sequence of adjacent tiles.

Returns a clockwise sequence of adjacent tiles.

Attributes

def defaultView(pxScale: Double): HGView
def edgesForeach(f: HSep => Unit): Unit

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 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 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 hCenSteps(hCen: HCen): HStepArr
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

def linksForeach(f: HSep => Unit): Unit

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: LayerHcRefSys[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

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

Gives the index into an Arr / Array of side data from its tile HSep. 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 HSep. Use arrIndex and vertIndex methods to access Side and Vertex Arr / Array data.

Attributes

def sepTileLtOpt(hSide: HSep): Option[HCen]
def sepTileLtUnsafe(hSide: HSep): HCen

This method should only be used when you know the hex separator exists.

This method should only be used when you know the hex separator exists.

Attributes

def sepTileRtOpt(hSide: HSep): Option[HCen]
def sepTileRtUnsafe(hSide: HSep): HCen

This method should only be used when you know the hex separator exists.

This method should only be used when you know the hex separator exists.

Attributes

def sepsForeach(f: HSep => Unit): Unit

foreach Hex separator's coordinate HSep, calls the effectual function.

foreach Hex separator's coordinate HSep, calls the effectual function.

Attributes

def stepEndFind(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 stepEndGet(startCen: HCen, step: HStep): HCen

Unsafe. Gets the destination HCen from the HStep. Throws exception if no end point,

Unsafe. Gets the destination HCen from the HStep. Throws exception if no end point,

Attributes

def stepFind(startCen: HCen, endCen: HCen): Option[HStep]

Finds step from Start HCen to target from HCen.

Finds step from Start HCen to target from HCen.

Attributes

def vertToCoordFind(hVert: HVert, dirn: HVDirn): Option[HCoord]

Finds the HCoord if it exists, by taking the HVDirn from an HVert.

Finds the HCoord if it exists, by taking the HVDirn from an HVert.

Attributes

Concrete methods

final def adjTilesOfTile(origin: HCen): HCenArr

Returns a clockwise sequence of adjacent tiles.

Returns a clockwise sequence of adjacent tiles.

Attributes

final def cenStepEndFind(cenStep: HCenStep): Option[HCen]
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

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

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

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

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

def findSepTiles(hs: HSep): Option[(HCen, HCen)]

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

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

Attributes

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

flatMaps over each inner hex Separator's coordinate HSep..

flatMaps over each inner hex Separator's coordinate HSep..

Attributes

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

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

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

Attributes

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

OptMaps over each inner hex Side's coordinate HSep.

OptMaps over each inner hex Side's coordinate HSep.

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

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

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

Attributes

Returns the most appropriate HSysProjection for this HGridSys.

Returns the most appropriate HSysProjection for this HGridSys.

Attributes

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

Does the HSep hex tile separator exist within thisHGridSys.

Does the HSep hex tile separator exist within thisHGridSys.

Attributes

def sepExists(hs: HSep): Boolean

Does the HSep hex tile separator exist within thisHGridSys.

Does the HSep hex tile separator exist within thisHGridSys.

Attributes

final def sepLayerArrayIndex(hc: HSep): Int

Gives the index into an Arr / Array of Tile data from its tile HSep. 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 HSep. 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 sepOptMapPair[B2](f2: HSep => Option[B2])(implicit build: HSepBuilderArrPairMap[B2]): HSepArrPair[B2]

OptMaps each HSep of this hex grid system to an HSepPair.

OptMaps each HSep of this hex grid system to an HSepPair.

Attributes

final def seps: HSepArr

The HSep hex separator coordinates.

The HSep hex separator coordinates.

Attributes

final def sepsFlatMap[ArrT <: Arr[_]](f: HSep => ArrT)(implicit build: BuilderArrFlat[ArrT]): ArrT

flatMaps over each Hex Separator's coordinate HSep.

flatMaps over each Hex Separator's coordinate HSep.

Attributes

final def sepsMap[B, ArrT <: Arr[B]](f: HSep => B)(implicit build: BuilderArrMap[B, ArrT]): ArrT

maps over each Hex Separator's coordinate HSep in the hex grid system.

maps over each Hex Separator's coordinate HSep in the hex grid system.

Attributes

final def sepsOptMap[B, ArrB <: Arr[B]](f: HSep => Option[B])(implicit build: BuilderArrMap[B, ArrB]): ArrB

Optionally maps over each Hex Separator's coordinate HSep.

Optionally maps over each Hex Separator's coordinate HSep.

Attributes

def stepEndFind(r: Int, c: Int, step: HStep): Option[HCen]

Optionally returns the destination of an HStep if the destination exists in the HGridSys.

Optionally returns the destination of an HStep if the destination exists in the HGridSys.

Attributes

def stepEndOrStart(startHC: HCen, step: HStep): HCen

Finds step from Start HCen to target from HCen if end hex exists, else returns start hex.

Finds step from Start HCen to target from HCen if end hex exists, else returns start hex.

Attributes

def stepExists(startCen: HCen, endCen: HCen): Boolean
final def stepFind(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

def stepLikeEndFind(startHC: HCen, stepLike: HStepLike): Option[HCen]

Finds the end from an HStepLike.

Finds the end from an HStepLike.

Attributes

def stepsEndFind(startCen: HCen, steps: HStepArr): Option[HCen]
final def vertArrIndex(hc: HSep): 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 def vertsFlatMap[ArrT <: Arr[_]](f: HVert => ArrT)(implicit build: BuilderArrFlat[ArrT]): ArrT

flatMaps over each Hex vertex's coordinate HVert.

flatMaps over each Hex vertex's coordinate HVert.

Attributes

def vertsForeach(f: HVert => Unit): Unit

foreach Hex vertex coordinate HVert, calls the effectual function.

foreach Hex vertex coordinate HVert, calls the effectual function.

Attributes

final def vertsMap[B, ArrT <: Arr[B]](f: HVert => B)(implicit build: BuilderArrMap[B, ArrT]): ArrT

maps over each Hex Separator's coordinate HSep in the hex grid system.

maps over each Hex Separator's coordinate HSep in the hex grid system.

Attributes

Inherited methods

final def allRsFlatMap[ArrT <: Arr[_]](f: Int => ArrT)(implicit build: BuilderArrFlat[ArrT]): ArrT

flatMaps over each r row coordinate number.

flatMaps over each r row coordinate number.

Attributes

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

maps over each r row coordinate number.

maps over each r row coordinate number.

Attributes

Inherited from:
TGridSys
def allRsforeach(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 bottom: Double

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
def cenVec: Vec2

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 flatMap[ArrT <: Arr[_]](f: HCen => ArrT)(implicit build: BuilderArrFlat[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

Inherited from:
HexStruct
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

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

Attributes

Inherited from:
TGridSys
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

Inherited from:
HexStruct
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

Inherited from:
HexStruct
def hCenExistsIfDo(r: Int, c: Int)(proc: => Unit): Unit

If the given HCen exists within this HGridSys, perform the side effecting function.

If the given HCen exists within this HGridSys, perform the side effecting function.

Attributes

Inherited from:
HexStruct
def hCenExistsIfDo(hc: HCen)(proc: => Unit): Unit

If the given HCen exists within this HGridSys, perform the side effecting function.

If the given HCen exists within this HGridSys, perform the side effecting function.

Attributes

Inherited from:
HexStruct
def hCoordExists(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

Inherited from:
HexStruct
final def hCoordExists(hc: HCoord): 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

Inherited from:
HexStruct
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
def iForeach(init: Int)(f: (Int, HCen) => 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

Inherited from:
HexStruct
def iForeach(f: (Int, HCen) => 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

Inherited from:
HexStruct
final def ifFlatMap[ArrT <: Arr[_]](f1: HCen => Boolean)(f2: HCen => ArrT)(implicit build: BuilderArrFlat[ArrT]): ArrT

flatMaps from all hex tile centre coordinates to an Arr of type ArrT. The normal flatMap functions is only applied if the condtion of the first function is true.

flatMaps from all hex tile centre coordinates to an Arr of type ArrT. The normal flatMap functions is only applied if the condtion of the first function is true.

Attributes

Inherited from:
HexStruct
final def ifMap[B, ArrB <: Arr[B]](f1: HCen => Boolean)(f2: HCen => B)(implicit build: BuilderArrMap[B, ArrB]): ArrB

Maps each Hcen to an element of type B, only if the predicate function on the HCen is true. Collects the true cases. In some cases this will be easier and more efficient than employing the optMap method.

Maps each Hcen to an element of type B, only if the predicate function on the HCen is true. Collects the true cases. In some cases this will be easier and more efficient than employing the optMap method.

Attributes

Inherited from:
HexStruct
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

Inherited from:
HexStruct
def left: Double

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 map[B, ArrB <: Arr[B]](f: HCen => B)(implicit build: BuilderArrMap[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

Inherited from:
HexStruct
def mapPair[B2](f2: HCen => B2)(implicit build: HCenPairArrMapBuilder[B2]): HCenPairArr[B2]

Maps each HCen of this hex grid system to an HCenPair. The first part of the pair is just the HCen, the second part of the pair is produced by the parameter function.

Maps each HCen of this hex grid system to an HCenPair. The first part of the pair is just the HCen, the second part of the pair is produced by the parameter function.

Attributes

Inherited from:
HexStruct
final def numCorners: Int

The number of HCorners in this HGridSys, 6 for each HCen.

The number of HCorners in this HGridSys, 6 for each HCen.

Attributes

Inherited from:
HexStruct

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
final def optMap[B, ArrB <: Arr[B]](f: HCen => Option[B])(implicit build: BuilderArrMap[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

Inherited from:
HexStruct
def optMapPair[B2](f2: HCen => Option[B2])(implicit build: HCenPairArrMapBuilder[B2]): HCenPairArr[B2]

OptMaps each HCen of this hex grid system to an HCenPair.

OptMaps each HCen of this hex grid system to an HCenPair.

Attributes

Inherited from:
HexStruct
def right: Double

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
def xCen: Double

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
def yCen: Double

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
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 from:
HexStruct

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