Packages

  • package root
    Definition Classes
    root
  • package ostrat

    This is the root package for the Openstrat project.

    This is the root package for the Openstrat project. The top of this package contains, 32 bit Int based Colours, the Multiple type class, a show and persistence library using RCON (Name may change), Rich Compact Object Notation, array based compound value collections of same length elements, an Either based errors framework and general utilities.

    Definition Classes
    root
  • package geom

    I chose the package name to not clash with "geometry" that may be use in other libraries This package contains Basic geometry.

    I chose the package name to not clash with "geometry" that may be use in other libraries This package contains Basic geometry. A number of implementation Value classes of the Int and Double product classes defined in ostrat. 2d graphical objects for generalised use. They are of particular use for the generic canvas based classes defined in pCanv but can be used in any display framework and for printing.

    Definition Classes
    ostrat
  • package pCanv

    The package attempts to encapsulate the various abstract canvas traits while the actual objects that populate a canvas go in package geom.

    The package attempts to encapsulate the various abstract canvas traits while the actual objects that populate a canvas go in package geom.

    Definition Classes
    ostrat
  • CanvasMock
  • CanvasMulti
  • CanvasPlatform
  • CanvasSimple
  • CanvasTopLeft
  • CanvasTopLeftStubs
  • CanvasUser
  • CmdBarGui
  • DispAnim
  • DispObj
  • DispPhase
  • DispStill
  • Dist2Gui
  • EuclidGui
  • LeftButton
  • MButtonCmd
  • MapGui
  • MenuBranch
  • MenuBranchDynamic
  • MenuContextGraphic
  • MenuLeaf
  • MenuNode
  • MenuSeq
  • MenuSub
  • MiddleButton
  • MouseButton
  • NoButton
  • Panel
  • PanelLike
  • RectangleGui
  • RightButton
  • StdButton
  • Turn
  • UnfixedMapGui
  • package pDev
    Definition Classes
    ostrat
  • package pEarth
    Definition Classes
    ostrat
  • package pExt
    Definition Classes
    ostrat
  • package pGames

    This pSimp contains the a number of games in varying stages of development.

    This pSimp contains the a number of games in varying stages of development.

    Definition Classes
    ostrat
  • package pGrid

    This package works with hexagonal and Square tile grids.

    This package works with hexagonal and Square tile grids. The tile objects themselves will not in the general case the contain grid coordinates, although it may be necessary to include this data for complex Tile values interacting with their wider environment. Its fundamental components are the grid data itself. This is just a linear array of tile data. Compile-time typed grid data. So for example a chess board can be represented by a 64 element Arr, its context determines that it is to be interpreted as an 8 by 8 square grid. Grid descriptions that describe the grid representation in the Array and GridFunctions which implement Cood to T. The grid and grid-gui hierarchies currently contain a mix of new and old systems.

    Definition Classes
    ostrat
  • package pParse

    This is the RSON package.

    This is the RSON package. Readable Succinct Object Notation. It could be just as accurately be described as Readable Succinct Data Notation, but that wouldn't scan as well and indicate it as a better replacement for JSON. RSON uses the standard semicolon separated statements combined with multilevel bracket hierarchy syntax familiar from C, C++, Java and JavaScript. Its main innovations over JSON and XML are allowing statements to be partitioned into comma delineated clauses, the empty statement, the empty clause and type inference. It uses a context free operator precedence hierarchy, with the exception of allowing the 4 ( - + ~ !) operator to be used as prefix operators. Beyond this it generally follows Scala syntax where this doesn't conflict with the preceding rules. Unlike Scala statements must finish with a semicolon unless it is the last statement of a file or a bracket block. Allowing statements to end with a newline introduces horrendous ambiguities unless one is willing to go completely down the significant whitespace route and I'm not sure if that could work even work for such a general purpose basic syntax.

    The above allows it to combine a high level of human readability, succinctness, non-programmer / non-expert write-ability, programmer flexibility and composability and fast-parsing. The initial motivating use case was strategy games, which require huge amounts of modable date files. XML and JSON, the current defaults are simply not fit for purpose. RSON aims to break down the walls between game player, game modder, professional game artist, professional game scripter, professional imperative programming wizards in languages such as C / C++ and Rust and professional functional programming wizards in languages such as Scala, Haskell and Idris.

    Definition Classes
    ostrat
  • package pSJs
    Definition Classes
    ostrat
  • package pStrat

    Package for miscellaneous game utilities and data.

    Package for miscellaneous game utilities and data.

    Definition Classes
    ostrat
  • package pWeb

    This package for the manipulation of Html, XML CSS and Javascript.

    This package for the manipulation of Html, XML CSS and Javascript. Some of the functionality could be replaced by Scalatags. As it currently stands the code and design quality of this package is not up to standard, but due to many other higher priorities, I have not been able to take the next step, which is to 1 improve and document it, rewrite it from scratch or 3 replace it with a Scala-tags dependency or some other library.

    Definition Classes
    ostrat
  • package strat
    Definition Classes
    ostrat
p

ostrat

pCanv

package pCanv

The package attempts to encapsulate the various abstract canvas traits while the actual objects that populate a canvas go in package geom.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. pCanv
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. case class CanvasMock(width: Double, height: Double) extends CanvasPlatform with Product with Serializable

    A class for testing mouse pointer functionality.

  2. abstract class CanvasMulti extends CanvasUser
  3. trait CanvasPlatform extends RectGeom

    An abstract Canvas trait.

    An abstract Canvas trait. A concrete implementation will utilise canvas like an HTML canvas or a Scalafx canvas. This concrete implementation class must (can?) be mixed in with a a particular use trait like CanvSimple or CanvMulti. The default methods take the origin as the centre of the canvas. Note the Canvas Platform merely passes bare pointer event data to delegate functions. It does not process them in relation to objects painted on the Canvas.

  4. abstract class CanvasSimple extends CanvasUser with PanelLike

    A simple use of the canvas with out splitting it up into Panels

  5. trait CanvasTopLeft extends CanvasPlatform

    This trait is for Canvas Implementations with a Top left origin and downward y axis.

    This trait is for Canvas Implementations with a Top left origin and downward y axis. It should not be used by graphical applications.

  6. trait CanvasTopLeftStubs extends CanvasTopLeft

    This trait provides stub methods to allow development on a Canvas with incomplete functionality.

    This trait provides stub methods to allow development on a Canvas with incomplete functionality. Override the methods as desired but remove this trait form the inheritance hierarchy once full functionality has been implemented

  7. abstract class CanvasUser extends AnyRef
  8. abstract class CmdBarGui extends CanvasMulti
  9. case class DispAnim(fAnim: (Double) => Unit, secs: Double) extends DispPhase with Product with Serializable
  10. trait DispObj extends AnyRef
  11. sealed trait DispPhase extends AnyRef
  12. case class DispStill(fDisp: () => Unit) extends DispPhase with Product with Serializable
  13. trait Dist2Gui extends MapGui

    Why is the called a Dist2LikeGui not a Dist2 Gui

  14. trait EuclidGui extends MapGui with Dist2Gui

    A gui for Euclidean maps

  15. type MB0 = (MouseButton) => Unit
  16. case class MButtonCmd(cmd: (MouseButton) => Unit) extends Product with Serializable
  17. abstract class MapGui extends CanvasMulti

    A MapGui uses a CanvMulti.

    A MapGui uses a CanvMulti. It has a main map panel and a top control panel. In addition translates between 2d game coordinates and 2d coordinates on the canvas. Allowing the canvas to display a moving, scalable 2d view though the Game map. The x coordinate increases from left to right, the y coordinate increases from bottom to top.

  18. class MenuBranch extends MenuSub
  19. class MenuBranchDynamic extends MenuSub
  20. abstract class MenuContextGraphic extends AnyRef

    Not sure aboout this class

  21. class MenuLeaf extends MenuNode
  22. sealed abstract class MenuNode extends AnyRef
  23. type MenuSeq = Seq[MenuNode]
  24. sealed abstract class MenuSub extends MenuNode
  25. sealed class MouseButton extends AnyRef
  26. case class Panel(outerCanv: CanvasMulti, clipPoly: Polygon, cover: Boolean = true) extends PanelLike with Product with Serializable

    A virtual panel created from the Canvas implemented using the clip function

  27. trait PanelLike extends RectGeom

    The purpose of this trait is to give common methods for Panels and Simple Canvases.

    The purpose of this trait is to give common methods for Panels and Simple Canvases. A SimpleCanvas is like a Panel but not a Panel.

  28. trait RectangleGui extends MapGui
  29. abstract class UnfixedMapGui extends MapGui

    So currently this is a turn based class allowing the selection of objects within the map.

    So currently this is a turn based class allowing the selection of objects within the map. That is not the case for the Planet App where the planets move too quickly for selection. The focus centre is un fixed unlike the planet App.

Value Members

  1. object LeftButton extends MouseButton with Product with Serializable
  2. object MenuBranch
  3. object MenuBranchDynamic
  4. object MenuLeaf
  5. object MenuNode
  6. object MenuSeq
  7. object MenuSub
  8. object MiddleButton extends MouseButton with Product with Serializable
  9. object NoButton extends MouseButton with Product with Serializable
  10. object RightButton extends MouseButton with Product with Serializable
  11. object StdButton
  12. object Turn extends PersistSingleton

Inherited from AnyRef

Inherited from Any

Ungrouped