ostrat.pEarth

This package and module is for Earth maps. In particular the tiling of the whole world in Hex grids, defining the changes over the course of history. This will be a data orientated module. It will also include terrain types to model terrain, both real and imagined for local maps and higher scales right up to 0.5 metres per tile However it won't generally include the data for these. The data for the real world will be organised according to a number of levels, which are likely to change over increasingly shorter historical time frames.

1 Base elevation, relative to 1950 sea level, and relief. 2 Climate. 2 Sea level, shore lines, lake shore lines and river courses. 3 Land-use, both natural and human.

Type members

Classlikes

object AfricaEast extends EArea1
object AfricaWest extends EArea1
object AfricanTrangle extends EArea1

The southern part of Africa below approximately 5 degrees north, roughly triangular in shape.

The southern part of Africa below approximately 5 degrees north, roughly triangular in shape.

object AsiaEast extends EArea1

North of 25.4N degs East of 66.3E west of 141.6E 33.3N

North of 25.4N degs East of 66.3E west of 141.6E 33.3N

object AsiaWest extends EArea1

North of 25.4N degs East of 66.3E west of 141.6E 33.3N

North of 25.4N degs East of 66.3E west of 141.6E 33.3N

object Australasia extends EArea1
trait Biome
object Canarias extends EArea2
object CentralAfricaWest extends EArea2
case object Desert extends Biome
object E80Empty extends EGridMaker
case class E80GridGuiOld(canv: CanvasPlatform, scen: E80DataOld, cenRoord: Roord) extends CmdBarGui

Gui to display E80Data objects in isolation.

Gui to display E80Data objects in isolation.

abstract class EArea1(val name: String, val cen: LatLong) extends GeographicSymbolKey

A first level area of the Earth, a large area such as North West Europe.

A first level area of the Earth, a large area such as North West Europe.

abstract class EArea2(val name: String, val cen: LatLong, val terr: WTile) extends GeographicSymbolKey

A second level area of the Earth.

A second level area of the Earth.

Companion:
object
object EArea2
Companion:
class
class EGFarNorth[TileT <: TileAncient, SideT <: TileSideAncient](name: String, cenLong: Longitude, xOffset: Int, xTileMin: Int, xTileMax: Int)(implicit evTile: ClassTag[TileT], evSide: ClassTag[SideT]) extends EGrid80KmAncient[TileT, SideT]
Companion:
object
object EGFarNorth
Companion:
class
class EGNorth[TileT <: TileAncient, SideT <: TileSideAncient](bounds: Array[Int], name: String, cenLong: Longitude, xOffset: Int, xTileMin: Int, xTileMax: Int)(implicit evTile: ClassTag[TileT], evSide: ClassTag[SideT]) extends EGrid80KmAncient[TileT, SideT]
class EGrid80KmAncient[TileT <: TileAncient, SideT <: TileSideAncient](bounds: Array[Int], name: String, cenLong: Longitude, xOffset: Int, xTileMin: Int, xTileMax: Int, yTileMin: Int, yTileMax: Int, turnNum: Int)(implicit evTile: ClassTag[TileT], evSide: ClassTag[SideT]) extends EGridAncient[TileT, SideT]

80km hexs. deltaX in HexCood 1 = 20km

80km hexs. deltaX in HexCood 1 = 20km

Companion:
object
Companion:
class
trait EGrid80KmOld extends EGridOld
Companion:
object

Under new numbering system Greenwich longitude will be row 512 0G0 in Base32, Longitude 30 East passing through St Petersburg Russia will be 1536 Base32 1G0. Longitude 90 West passing through Memphis and New Orleans will be 9728 Base32 9G0. 30 West passing through Greenland will be 11776 Base32 BG0.

Under new numbering system Greenwich longitude will be row 512 0G0 in Base32, Longitude 30 East passing through St Petersburg Russia will be 1536 Base32 1G0. Longitude 90 West passing through Memphis and New Orleans will be 9728 Base32 9G0. 30 West passing through Greenland will be 11776 Base32 BG0.

Companion:
class
class EGridAncient[TileT <: TileAncient, SideT <: TileSideAncient](bounds: Array[Int], val name: String, val cenLong: Longitude, val scale: Length, val xOffset: Int, val yOffset: Int, xTileMin: Int, xTileMax: Int, yTileMin: Int, yTileMax: Int, turnNum: Int)(implicit evTile: ClassTag[TileT], evSide: ClassTag[SideT]) extends HexGridIrrAncient[TileT, SideT]

A Hex Grid for an area of the earth. It is irregular because as you move towards the poles the row length decreases. The x dirn follows lines of longitude. The y Axis at the cenLong moves along a line of longitude.

A Hex Grid for an area of the earth. It is irregular because as you move towards the poles the row length decreases. The x dirn follows lines of longitude. The y Axis at the cenLong moves along a line of longitude.

class EGridAncientOnly(name: String, cenLong: Longitude, scale: Length, xOffset: Int, yOffset: Int, xTileMin: Int, xTileMax: Int, yTileMin: Int, yTileMax: Int, turnNum: Int) extends EGridAncient[TerrOnly, SideOnlyAncient]

Not sure whether the "fTile: (Int, Int, Terrain) => TileT" should be implicit. Will change with multiple implicit parameter lists

Not sure whether the "fTile: (Int, Int, Terrain) => TileT" should be implicit. Will change with multiple implicit parameter lists

Not sure if this trait needs to exist anymore

Not sure if this trait needs to exist anymore

Companion:
object
Companion:
class
case class ESideOnyAncient(x: Int, y: Int, terr: SideTerr) extends ESideAncient
Companion:
object
Companion:
class
abstract class EarthAllGuiOld(title: String) extends EarthGuiOld

Not sure if this class is necessary. A class for whole earth maps as opposed to for example, Old World maps.

Not sure if this class is necessary. A class for whole earth maps as opposed to for example, Old World maps.

class EarthAllMap[TileT <: TileAncient, SideT <: TileSideAncient](fTile: (Int, Int, WTile) => TileT, fSide: (Int, Int, SideTerr) => SideT)(implicit evTile: ClassTag[TileT], evSide: ClassTag[SideT]) extends OldWorldMap[TileT, SideT]

An all world map, parametrised by Tile and Tile side types.

An all world map, parametrised by Tile and Tile side types.

object EarthAreas

Object for irregular areas and hexagonal tile grids to represent the Earths surface.

Object for irregular areas and hexagonal tile grids to represent the Earths surface.

case class EarthBasicGui(canv: CanvasPlatform, startScale: Option[Length], startFocus: Option[LatLong]) extends CmdBarGui

Basic map of the Earth using irregular areas / tiles.

Basic map of the Earth using irregular areas / tiles.

object to launch EarthBasic Gui.

object to launch EarthBasic Gui.

abstract class EarthGuiOld(title: String) extends UnfixedMapGui

Slated for removal.

Slated for removal.

case class EarthView(latLong: LatLong, scale: Length, up: Boolean)

A view of the Earth. Currently North can only be up or down.

A view of the Earth. Currently North can only be up or down.

Companion:
object
object EarthView
Companion:
class
object EastAfricaSouth extends EArea2
case object Forrest extends Biome

Not sure about this trait.

Not sure about this trait.

case object Hilly extends Terrain
object IceCap extends Biome
object Iceland extends EArea2
object Jungle extends Biome
case object Lake extends Water
object LakeTanganyika extends EArea2

Lake Tanganyika.

Lake Tanganyika.

object LakeVictoria extends EArea2

Lake Victoria.

Lake Victoria.

class Land(val terr: Terrain, val biome: Biome) extends WTile
Companion:
object
object Land
Companion:
class
object Majorca extends EArea2
case object Mountains extends Terrain
object NorthAtantic extends EArea1

The North Atlantic. The seas and the land of the north Atlantic.

The North Atlantic. The seas and the land of the north Atlantic.

case object Ocean extends Water
trait OfEElem[TileT <: TileAncient, SideT <: TileSideAncient] extends OfGridElem[TileT, SideT, EGridAncient[TileT, SideT]]
class OfESide[TileT <: TileAncient, SideT <: TileSideAncient](val eg: EarthGuiOld, val eGrid: EGridAncient[TileT, SideT], val side: SideT) extends OfHexSide[TileT, SideT, EGridAncient[TileT, SideT]] with OfEElem[TileT, SideT]
class OfETile[TileT <: TileAncient, SideT <: TileSideAncient](val eg: EarthGuiOld, val eGrid: EGridAncient[TileT, SideT], val tile: TileT) extends OfHex[TileT, SideT, EGridAncient[TileT, SideT]] with OfEElem[TileT, SideT]

A stand OfTile maps from Grid Coordinates to map Vec2 and then to display Vec2. This maps from Grid Coordinate to Dist2 to Vec2

A stand OfTile maps from Grid Coordinates to map Vec2 and then to display Vec2. This maps from Grid Coordinate to Dist2 to Vec2

class OldWorldMap[TileT <: TileAncient, SideT <: TileSideAncient](val fTile: (Int, Int, WTile) => TileT, fSide: (Int, Int, SideTerr) => SideT)(implicit evTile: ClassTag[TileT], evSide: ClassTag[SideT])
case object OpenTerrain extends Biome
object PacificTop extends EArea1
object Peloponnese extends EArea2
case object Plains extends Terrain
object PolarSouth extends EArea1
object SaharaEast extends EArea2
object SaharaWest extends EArea2
object SeaIce extends WTile
object Sicily extends EArea2
object SideEdge extends SideTerr
object SideNone extends SideTerr
case class SideOnlyAncient(x: Int, y: Int) extends TileSideAncient
Companion:
object
Companion:
class
trait SideTerr
object Straitsold extends SideTerr
case object Taiga extends Biome
case class TerrOnly(x: Int, y: Int, terr: WTile) extends ETileAncient
Companion:
object
object TerrOnly
Companion:
class
trait Terrain
object TerrainNone extends WTile
object TilingTryApp extends App

Scrap pad console app for the Tiling module.

Scrap pad console app for the Tiling module.

object VertIn
trait WTile extends Coloured with ShowSimple

World Tile, consider changing to ETile.

World Tile, consider changing to ETile.

Companion:
object
object WTile
Companion:
class
trait Water extends WTile

Currently a common trait for Ocean and Lake.

Currently a common trait for Ocean and Lake.

object centralAfricaEast extends EArea2

Value members

Concrete methods

def coodToLatLong0(inp: Cood, scale: Length, yOffset: Int): LatLong

Not necessarily used

Not necessarily used

def fVec2ToLatLongReg(refLong: Longitude, scale: Length, xOffset: Int, yOffset: Int): Pt2 => LatLong

Returns a function for a specific EGrid to convert from gridVec to Latlong

Returns a function for a specific EGrid to convert from gridVec to Latlong

def vec2ToLatLong0(inp: Pt2, refLong: Longitude, scale: Length, yOffset: Int): LatLong

Not necessarily used

Not necessarily used

def vec2ToLatLongReg(inp: Pt2, refLong: Longitude, scale: Length, xOffset: Int, yOffset: Int): LatLong

Concrete fields

The North-South divide between Area1s and Grids at 45 degrees north approx.

The North-South divide between Area1s and Grids at 45 degrees north approx.