CanvasPlatform

ostrat.pgui.CanvasPlatform
trait CanvasPlatform extends RectCenlign

An abstract Canvas interface implemented and to be implemented on various platforms. 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.

It is really not a good idea to use this trait, use a sub class of this trait directly in your applications. You do not want to be thinking in terms of the imperative methods of this application. Use one of the provided classes like CanvasNoPanels or Canvas Panelled or create your own if the provided classes don't fulfill your needs.

Attributes

Graph
Supertypes
trait RectCenlign
trait WithCentre
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Value members

Abstract methods

def cArcDraw(cad: CArcDraw): Unit

Draws a circular arc on the canvas.

Draws a circular arc on the canvas.

Attributes

Side effecting procedure that draws a circle on the screen. Implemented by the target platform.

Side effecting procedure that draws a circle on the screen. Implemented by the target platform.

Attributes

Side effecting procedure that fills a circle. Implemented by the target platform.

Side effecting procedure that fills a circle. Implemented by the target platform.

Attributes

def circleFillRadial(circle: Circle, fill: FillRadial): Unit
def clear(colour: Colour): Unit
def clip(pts: Polygon): Unit

To be removed from CanvasPlatform.

To be removed from CanvasPlatform.

Attributes

def eArcDraw(ead: EArcDraw): Unit

Draws an elliptical arc on the canvas.

Draws an elliptical arc on the canvas.

Attributes

Side effecting procedure that draws an ellipse on the screen. Implemented by the target platform.

Side effecting procedure that draws an ellipse on the screen. Implemented by the target platform.

Attributes

Side effecting procedure that fills an ellipse on the screen. Implemented by the target platform.

Side effecting procedure that fills an ellipse on the screen. Implemented by the target platform.

Attributes

def gcRestore(): Unit
def gcSave(): Unit
def getTime: Long

Returns the system (Unix) time in milliseconds.

Returns the system (Unix) time in milliseconds.

Attributes

def loadFile(fileName: String): EMon[String]
protected def pLinePathDraw(pod: LinePathDraw): Unit
protected def pPolyDraw(pd: PolygonDraw): Unit
protected def pPolyFill(pf: PolygonFill): Unit
protected def pShapeGenDraw(sgd: ShapeGenDrawOld): Unit
protected def pShapeGenFill(sgf: ShapeGenFillOld): Unit
def saveFile(fileName: String, output: String): Unit
def timeOut(f: () => Unit, millis: Integer): Unit

A call back timer. Takes the delay in milliseconds

A call back timer. Takes the delay in milliseconds

Attributes

Concrete methods

def animSeq(anims: Seq[DispPhase]): Unit
def frame(f: (Integer, Integer) => Unit, startTime: Integer, frameLength: Integer): Unit

A callback timer with an elapsed time from a given start point. Although are in a general purpose form, the most common usage is for animations where things move dependent on how much time has passed. The function is of form: (elapsedTime(in milliseconds), Startime (in milliseconds) => Unit. The startTime is to be used to call the next frame at then end of the function, if another frame is needed.

A callback timer with an elapsed time from a given start point. Although are in a general purpose form, the most common usage is for animations where things move dependent on how much time has passed. The function is of form: (elapsedTime(in milliseconds), Startime (in milliseconds) => Unit. The startTime is to be used to call the next frame at then end of the function, if another frame is needed.

Attributes

def fromFileFind[A](fileName: String)(implicit ev: Unshow[A]): EMon[A]
def fromFileFindElse[A](fileName: String, elseValue: => A)(implicit ev: Unshow[A]): A
def fromFileFindForeach[A](fileName: String, f: A => Unit)(implicit ev: Unshow[A]): Unit

Attempts to find find and load file, attempts to parse the file, attempts to find object of type A. If all stages successful, calls procedure (Unit returning function) with that object of type A

Attempts to find find and load file, attempts to parse the file, attempts to find object of type A. If all stages successful, calls procedure (Unit returning function) with that object of type A

Attributes

def fromFileFindSetting[A](settingStr: String, fileName: String)(implicit ev: Unshow[A]): EMon[A]
def fromFileFindSettingElse[A](settingStr: String, fileName: String, elseValue: => A)(implicit ev: Unshow[A]): A
final def polygonDraw(pd: PolygonDraw): Unit
final def polygonFill(pf: PolygonFill): Unit
def rendElems(elems: RArr[GraphicElem]): Unit
final def shapeGenDraw(sgd: ShapeGenDrawOld): Unit
final def shapeGenFill(sgf: ShapeGenFillOld): Unit
def startFrame(f: (Integer, Integer) => Unit, frameLength: Integer): Unit

The initial frame although are in a general purpose form, the most common usage is for animations where things move dependent on how much time has passed.

The initial frame although are in a general purpose form, the most common usage is for animations where things move dependent on how much time has passed.

Attributes

def startFramePermanent(f: Integer => Unit, millis: Integer): Unit
def toBL(input: Pt2): Pt2

Inherited methods

def blOffset: Vec2

Attributes

Inherited from:
OrdinalEdgePoints
override def bottom: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def bottomLeft: Pt2

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def bottomRight: Pt2

Attributes

Definition Classes
Inherited from:
RectCenlign
def brOffset: Vec2

Attributes

Inherited from:
OrdinalEdgePoints
override def cen: Pt2

The centre of this geometric / graphical element. The centre will not change if the object type is capable of being rotated and is rotated. The cenDefault on other bounded elements may move relative to points on the object when the object is rotated.

The centre of this geometric / graphical element. The centre will not change if the object type is capable of being rotated and is rotated. The cenDefault on other bounded elements may move relative to points on the object when the object is rotated.

Attributes

Definition Classes
Inherited from:
RectCenlign
def cenLeft: Pt2

Attributes

Inherited from:
RectCenlign
def cenX: Double

The X component of the centre.

The X component of the centre.

Attributes

Inherited from:
RectCenlign
def cenY: Double

The Y component of the centre.

The Y component of the centre.

Attributes

Inherited from:
RectCenlign
def crossHairs(lineWidth: Double, lineColour: Colour): LinesDraw

Attributes

Inherited from:
RectCenlign
def gridLines(spacing: Double, colour: Colour, lineWidth: Double): LinesDraw

Not sure why spacing has got a minus sign

Not sure why spacing has got a minus sign

Attributes

Inherited from:
RectCenlign
def gridLines2Colours(spacing: Double, cenColour: Colour, otherColour: Colour, lineWidth: Double): RArr[LinesDraw]

Badly named I think, not sure why spacing has got a minus sign

Badly named I think, not sure why spacing has got a minus sign

Attributes

Inherited from:
RectCenlign
def height: Double

Attributes

Inherited from:
Rectangularlign
override def left: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
def panelCen: Pt2

Attributes

Inherited from:
RectCenlign
override def right: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
def tlOffset: Vec2

Attributes

Inherited from:
OrdinalEdgePoints
override def top: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def topLeft: Pt2

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def topRight: Pt2

Attributes

Definition Classes
Inherited from:
RectCenlign
def trOffset: Vec2

Top right offset from centre.

Top right offset from centre.

Attributes

Inherited from:
OrdinalEdgePoints
def width: Double

Attributes

Inherited from:
Rectangularlign
final override def xBottomLeft: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def xBottomRight: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def xTopLeft: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def xTopRight: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def yBottomLeft: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def yBottomRight: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def yTopLeft: Double

Attributes

Definition Classes
Inherited from:
RectCenlign
final override def yTopRight: Double

Attributes

Definition Classes
Inherited from:
RectCenlign

Concrete fields

var keyDown: String => Unit
var keyUp: String => Unit

The canvas implementation will call this function when the mouse button is depressed. Named after Javascript command.

The canvas implementation will call this function when the mouse button is depressed. Named after Javascript command.

Attributes

The canvas implementation will call this function when a mouse button is released. Named after Javascript command.

The canvas implementation will call this function when a mouse button is released. Named after Javascript command.

Attributes

var resize: () => Unit

returns true if the shift key isdepressed.

returns true if the shift key isdepressed.

Attributes