ostrat.geom

package ostrat.geom

Type members

Classlikes

A class that can transform itself in 2d geometry and can preserve its type across all affine transformations. This is a key trait, the object can be transformed in 2 dimensional space. Leaf classes must implement the single method fTrans(f: Vec2 => Vec2): T. The related trait TransDistable does the same for fTrans(f: Dist2 => Dist2): T.

A class that can transform itself in 2d geometry and can preserve its type across all affine transformations. This is a key trait, the object can be transformed in 2 dimensional space. Leaf classes must implement the single method fTrans(f: Vec2 => Vec2): T. The related trait TransDistable does the same for fTrans(f: Dist2 => Dist2): T.

trait AffineTrans[T] extends TransSim[T]

The type class trait for transforming an object in 2d geometry. Note overrides necessary to preserve type.

The type class trait for transforming an object in 2d geometry. Note overrides necessary to preserve type.

Companion
object

The companion object for the Trans[T] type class, containing instances for common classes.

The companion object for the Trans[T] type class, containing instances for common classes.

Companion
class
case
class AlignMatrix(xFactor: Double, yFactor: Double, xDelta: Double, yDelta: Double)
final
class Angle extends AnyVal with AngleLike with Ordered[Angle] with ElemDbl1

Angle of inclination. Its particularly important not to use this class to represent Latitudes as the Angle class has a normal range 0 <= a < 360 degrees, while Latitudes have a normal range +- 90 degrees. Unlike AngleVec this class has no multiply or divide, * or / methods. It has add and subtract, + and - methods, but these take AngleVecs as operands not other Angles. To Add,subtract or scale angles of inclination would make no sense.

Angle of inclination. Its particularly important not to use this class to represent Latitudes as the Angle class has a normal range 0 <= a < 360 degrees, while Latitudes have a normal range +- 90 degrees. Unlike AngleVec this class has no multiply or divide, * or / methods. It has add and subtract, + and - methods, but these take AngleVecs as operands not other Angles. To Add,subtract or scale angles of inclination would make no sense.

Companion
object
object Angle

Angle Companion object.

Angle Companion object.

Companion
class
trait AngleLike extends Show with ApproxAngle with ElemDbl1

Base trait for Angle, AngleVec, Latitude and Longitude.

Base trait for Angle, AngleVec, Latitude and Longitude.

class AngleVec extends AngleLike

Angle vector, an angle of rotation. Values may be greater than 360 degrees and less than -360 degrees. Negative values represent clockwise rotation. So +720 degrees represents 2 complete anti-clockwise rotations, -1080 degrees represents 3 clockwise rotations.

Angle vector, an angle of rotation. Values may be greater than 360 degrees and less than -360 degrees. Negative values represent clockwise rotation. So +720 degrees represents 2 complete anti-clockwise rotations, -1080 degrees represents 3 clockwise rotations.

Companion
object
object AngleVec

Companion object for AngleVec trait contains factory methods.

Companion object for AngleVec trait contains factory methods.

Companion
class
final
class Angles(val arrayUnsafe: Array[Double]) extends AnyVal with ArrDbl1s[Angle]

Efficient Immutable Array[Double] based collection class, with the Angle values stored as arc seconds.

Efficient Immutable Array[Double] based collection class, with the Angle values stored as arc seconds.

Companion
object
object Angles

Companion object for Angles class.

Companion object for Angles class.

Companion
class
implicit
class AnyGeomImplicit(thisAny: Any)
trait ApproxAngle extends Approx[AngleVec]
trait ApproxAngleT[T] extends ApproxT[AngleVec, T]

To be removed.

To be removed.

object ArcTail

This provides factory methods to create an ArcTail. There is no independent ArcTail class. This is one of 3 factory objects to CurveTail.

This provides factory methods to create an ArcTail. There is no independent ArcTail class. This is one of 3 factory objects to CurveTail.

object Arrow

Object for producing arrow graphics to point at objects in diagrams.

Object for producing arrow graphics to point at objects in diagrams.

trait AxisFree extends GeomElem

This is a trait for geometric elements, GeomElems, that don't need special axes method implementations.

This is a trait for geometric elements, GeomElems, that don't need special axes method implementations.

case
object BackButton extends MouseButton

Indicates the back mouse button was pressed.

Indicates the back mouse button was pressed.

sealed
trait BaseLine

Baseline style for text.

Baseline style for text.

Companion
object
object BaseLine

Companion object for BaseLine trait, contains the object value instances of the trait.

Companion object for BaseLine trait, contains the object value instances of the trait.

Companion
class
class Bezier(val startX: Double, val startY: Double, val xC1: Double, val yC1: Double, val xC2: Double, val yC2: Double, val endX: Double, val endY: Double) extends CurveSeg with AffinePreserve

Cubic bezier curve.

Cubic bezier curve.

Companion
object
object Bezier
Companion
class
case
class BezierDraw(curveSeg: Bezier, colour: Colour, lineWidth: Double) extends CurveSegDraw with GraphicAffineElem with CanvElem

Functional class for Drawing a cubic Bezier curve.

Functional class for Drawing a cubic Bezier curve.

Companion
object
object BezierDraw

Companion object for the BezierDraw class.

Companion object for the BezierDraw class.

Companion
class
object BezierTail

This provides factory methods to create a Bezier tail. There is no independent BezierTail class. This is one of 3 factory objects to CurveTail.

This provides factory methods to create a Bezier tail. There is no independent BezierTail class. This is one of 3 factory objects to CurveTail.

trait BoundedElem extends GeomElem

A 2D geometric element, that has a defined bounding rectangle, BoundingRect. This trait is for layout, such as placing Graphic elements in rows and columns. It includes polygon and shape graphics but not line and curve graphics.

A 2D geometric element, that has a defined bounding rectangle, BoundingRect. This trait is for layout, such as placing Graphic elements in rows and columns. It includes polygon and shape graphics but not line and curve graphics.

final
class BoundedExtensions[T <: BoundedElem](val thisT: T) extends AnyVal
object BoundingNone extends BoundingOpt
sealed
case
class BoundingRect(minX: Double, maxX: Double, minY: Double, maxY: Double) extends BoundingOpt

An intermediate class for describing the vertical / horrisontal bounding rectangle for a Polygon or Shape. Defined by 4 Double values.

An intermediate class for describing the vertical / horrisontal bounding rectangle for a Polygon or Shape. Defined by 4 Double values.

implicit
class BuffDblExtensionsImplicit[A <: ElemDblN](val thisBuff: BuffDblNs[A])
implicit
class BuffIntExtensionsImplicit[A <: ElemIntN](val thisBuff: BuffIntNs[A])
final
class BuffPt2(val unsafeBuff: ArrayBuffer[Double]) extends AnyVal with BuffDbl2s[Pt2]

A specialised flat ArrayBuffer[Double] based class for Pt2s collections.

A specialised flat ArrayBuffer[Double] based class for Pt2s collections.

Companion
object
object BuffPt2
Companion
class
final
class BuffPtMetre2(val unsafeBuff: ArrayBuffer[Double]) extends AnyVal with BuffDbl2s[PtMetre2]

A specialised flat ArrayBuffer[Double] based class for PtMetre2s collections.

A specialised flat ArrayBuffer[Double] based class for PtMetre2s collections.

Companion
object
Companion
class
final
class BuffPtMetre3(val unsafeBuff: ArrayBuffer[Double]) extends AnyVal with BuffDbl3s[PtMetre3]

A specialised flat ArrayBuffer[Double] based class for Pt3s collections.

A specialised flat ArrayBuffer[Double] based class for Pt3s collections.

Companion
object
Companion
class
class CArc extends EArclign

Circular arc. Has a rotation counter to allow rotation deltas greater than 360 degrees and less than - 360 degrees. The CArc is intended to function as closely as possible to the functioning of CArcTails in a curve path. Hence the decision to store the three points as fields rather using the AngleVec of the arc which would allow less data. This is to avoid calculation /rounding errors in the start and end points, which will be used by other CurveSegs in curve paths.

Circular arc. Has a rotation counter to allow rotation deltas greater than 360 degrees and less than - 360 degrees. The CArc is intended to function as closely as possible to the functioning of CArcTails in a curve path. Hence the decision to store the three points as fields rather using the AngleVec of the arc which would allow less data. This is to avoid calculation /rounding errors in the start and end points, which will be used by other CurveSegs in curve paths.

Companion
object
object CArc

Companion object of CArc class, contains various factory methods for the construction of circular arcs.

Companion object of CArc class, contains various factory methods for the construction of circular arcs.

Companion
class
case
class CArcDraw(curveSeg: CArc, colour: Colour, lineWidth: Double) extends EArcDraw with AxisFree
class CArcTail(val xCen: Double, val yCen: Double, val xEnd: Double, val yEnd: Double, val counter: Int) extends CurveSegTail
trait CanvElem extends GraphicElem

A canvas element that can be rendered by the pgui.CanvasPlatform API. This trait is not sealed, but should not be extended outside of the library.

A canvas element that can be rendered by the pgui.CanvasPlatform API. This trait is not sealed, but should not be extended outside of the library.

Companion
object
object CanvElem

Companion object for the DisplayElem trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion object for the DisplayElem trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion
class
trait CanvShapeDraw extends ShapeDraw with CanvElem
trait CanvShapeFill extends ShapeFill with CanvElem

ShapeFill element that is a CanvElem

ShapeFill element that is a CanvElem

case
object CenAlign extends TextAlign

A 2D geometric element with a defined centre.

A 2D geometric element with a defined centre.

final case
class Circle(diameter: Double, cenX: Double, cenY: Double) extends Ellipselign with OrdinaledElem with AxisFree

Circle class is defined by its centre and radius. It fulfills the interface for an Ellipse.

Circle class is defined by its centre and radius. It fulfills the interface for an Ellipse.

Companion
object
object Circle extends ShapeIcon

This is the companion object for the Circle case class. It provides factory methods for creating Circles.

This is the companion object for the Circle case class. It provides factory methods for creating Circles.

Companion
class
case
class CircleCompound(shape: Circle, facets: Arr[GraphicFacet], children: Arr[GraphicElem]) extends EllipseCompound with CircleGraphic with AxisFree

Compound Circle Graphic class.

Compound Circle Graphic class.

final case
class CircleDraw(shape: Circle, lineWidth: Double, lineColour: Colour) extends CircleGraphicSimple with EllipseDraw

A simple draw of a circle graphic.

A simple draw of a circle graphic.

final case
class CircleFill(shape: Circle, fill: FillFacet) extends CircleGraphicSimple with EllipseFill with CanvElem

A simple single colour fill of a circle graphic.

A simple single colour fill of a circle graphic.

case
class CircleFillIcon(fillColour: Colour) extends ShapeFillIcon

A circle based Graphic, may be simple or compound.

A circle based Graphic, may be simple or compound.

A Simple circle based graphic. Not sure if this trait is useful.

A Simple circle based graphic. Not sure if this trait is useful.

object Cross

This just a temporary start.

This just a temporary start.

trait CurveFacet extends GraphicFacet
trait CurveSeg extends Drawable

A segment of a curve that could be used in a closed shape or curve path. The names start and end are used in CurveSeg and its sub classes to provide consistent naming across line segments LineSegs, circular arcs CArcs, elliptical arcs EArcs and Square and cubic beziers Beziers, which require different numbers of points in their specification.

A segment of a curve that could be used in a closed shape or curve path. The names start and end are used in CurveSeg and its sub classes to provide consistent naming across line segments LineSegs, circular arcs CArcs, elliptical arcs EArcs and Square and cubic beziers Beziers, which require different numbers of points in their specification.

Companion
object
object CurveSeg
Companion
class
final
class CurveSegDists(val arrayUnsafe: Array[Double]) extends AnyVal with ArrDbl7s[DistCurveTail]

This class needs replacing.

This class needs replacing.

Companion
object

Graphic based on a CurveSeg.

Graphic based on a CurveSeg.

case
class CurveTail(iMatch: Double, xC1: Double, yC1: Double, xUses: Double, yUses: Double, xEnd: Double, yEnd: Double) extends ElemDbl7 with AffinePreserve

A CurveSeg can be a line segment or an arc segment or a bezier segment without its starting point, which is supplied by the previous curveTail. It takes its start point from the pEnd of the previous segment. There is no CurveSeg companion object as the LineSeg, ArcSeg and BezierSeg all have their own factory object apply methods.

A CurveSeg can be a line segment or an arc segment or a bezier segment without its starting point, which is supplied by the previous curveTail. It takes its start point from the pEnd of the previous segment. There is no CurveSeg companion object as the LineSeg, ArcSeg and BezierSeg all have their own factory object apply methods.

case
class DashedLineDraw(curveSeg: LineSeg, lineWidth: Double, colour: Colour, dashArr: Array[Double]) extends CurveSegGraphic with AffinePreserve with CanvElem

This class will be replaced but extends CanvElem as a temporary measure.

This class will be replaced but extends CanvElem as a temporary measure.

Companion
object
Companion
class
class DataGenExtensions[A](val al: DataGen[A])

Needs removing. A base trait for DistCurveSeg and DistCurveTail and their associated GraphicElemsDist (these haven't been implemented or precisely named yet).

Needs removing. A base trait for DistCurveSeg and DistCurveTail and their associated GraphicElemsDist (these haven't been implemented or precisely named yet).

class DistCurveTail(val iMatch: Double, val xC1Metres: Double, val yC1Metres: Double, val xUsesMetres: Double, val yUsesMetres: Double, val xEndMetres: Double, val yEndMetres: Double) extends ElemDbl7 with DistCurveSegLike

Needs removing. A curve segment tail described in distance units rather than scalars. A DistCurveSeg without its starting point which will normally be supplied by the preceding DistCurveTail.

Needs removing. A curve segment tail described in distance units rather than scalars. A DistCurveSeg without its starting point which will normally be supplied by the preceding DistCurveTail.

class DoubleImplicitGeom(thisDouble: Double)

Extension methods class for Double, for the geom package.

Extension methods class for Double, for the geom package.

case
class DrawFacet(colour: Colour, width: Double) extends CurveFacet
trait Drawable extends GeomElem

A 2D geometric element that can be drawn producing a GraphicElem.

A 2D geometric element that can be drawn producing a GraphicElem.

Companion
object
object Drawable

Companion object for the Drawable trait contains implicit instances for various 2D geometric transformation type classes.

Companion object for the Drawable trait contains implicit instances for various 2D geometric transformation type classes.

Companion
class
trait EArc extends EllipseBased with CurveSeg

Elliptical Arc. the trait has 2 implementations CArc and EArc.EArcImp.

Elliptical Arc. the trait has 2 implementations CArc and EArc.EArcImp.

Companion
object
object EArc
Companion
class
trait EArcDraw extends CurveSegDraw with CanvElem

2D graphic that draws an arc of an ellipse. The trait has 2 implementations, CArcdraw, a cirular arc draw and the general case is implemented with EArcDraw.EArcDrawImp.

2D graphic that draws an arc of an ellipse. The trait has 2 implementations, CArcdraw, a cirular arc draw and the general case is implemented with EArcDraw.EArcDrawImp.

Companion
object
object EArcDraw

Companion object ofr the EArcDraw trait, contins the general implementation class EArcDrawImp and an apply factor method that delegates to EArcDrawImp.

Companion object ofr the EArcDraw trait, contins the general implementation class EArcDrawImp and an apply factor method that delegates to EArcDrawImp.

Companion
class
trait EArclign extends EArc

An arc based on an ellipse whose axes are aligned to the X and Y axes. This is a trait as the EArclign.EArclignImp and CArc classes both fulfill this interface.

An arc based on an ellipse whose axes are aligned to the X and Y axes. This is a trait as the EArclign.EArclignImp and CArc classes both fulfill this interface.

Companion
object
object EArclign

Companion object for EArclign trait, an arc that is based on Ellipse aligned to the X and Y axes.

Companion object for EArclign trait, an arc that is based on Ellipse aligned to the X and Y axes.

Companion
class
trait Ellipse extends EllipseBased with ShapeCentred

The Ellipse trait can either be implemented as an Ellipse class or as a Circle. Which also fulfills the Ellipse interface. The factory methods in the Ellipse companion object return [Ellipse]].

The Ellipse trait can either be implemented as an Ellipse class or as a Circle. Which also fulfills the Ellipse interface. The factory methods in the Ellipse companion object return [Ellipse]].

Companion
object
object Ellipse

Companion object for the Ellipse trait contains the EllipseImp implementation class and factory methods for Ellipse that delegate to EllipseImp.

Companion object for the Ellipse trait contains the EllipseImp implementation class and factory methods for Ellipse that delegate to EllipseImp.

Companion
class
trait EllipseBased extends GeomElem with WithCentre

Common trait for Ellipse and EArc. The main purpose of this trait is not to share code, but to establish naming conventions for elliptical properties.

Common trait for Ellipse and EArc. The main purpose of this trait is not to share code, but to establish naming conventions for elliptical properties.

Compound graphic trait for an ellipse. The final sub classes of this trait are CircleCompound andEllipse.EllipseImp.

Compound graphic trait for an ellipse. The final sub classes of this trait are CircleCompound andEllipse.EllipseImp.

Companion
object

Companion object for the EllipseCompound trait contains factory apply method and implicit instances for the 2D geometric transformations.

Companion object for the EllipseCompound trait contains factory apply method and implicit instances for the 2D geometric transformations.

Companion
class
Companion
object
Companion
class

A simple single colour fill of a circle graphic.

A simple single colour fill of a circle graphic.

Companion
object

Companion object for the EllipseFill class.

Companion object for the EllipseFill class.

Companion
class
case
class EllipseGM(xCen: GMetres, yCen: GMetres, xAxes1: GMetres, yAxes1: GMetres, radius2: GMetres)

An ellipse defined in mega metres or millions of Kilometres. Not sure whether this class justifies its weight in code. Might be useful for Solar System app.

An ellipse defined in mega metres or millions of Kilometres. Not sure whether this class justifies its weight in code. Might be useful for Solar System app.

An Ellipse based Graphic. The Ellipse can be defined as a circle.

An Ellipse based Graphic. The Ellipse can be defined as a circle.

A Simple circle based graphic. Not sure if this trait is useful.

A Simple circle based graphic. Not sure if this trait is useful.

trait Ellipselign extends Ellipse

An ellipse whose axes are aligned to the X and Y axes. This is a trait as both Circle and Ellipselign.EllipselignImp classes implement this interface.

An ellipse whose axes are aligned to the X and Y axes. This is a trait as both Circle and Ellipselign.EllipselignImp classes implement this interface.

Companion
object
Companion
class
case
class FillAttrib(colour: Colour) extends XmlAtt
trait FillFacet extends GraphicFacet
case
class FillRadial(cenColour: Colour, outerColour: Colour) extends FillFacet

Starting off with simplified. Radial Gradient. Will expand later.

Starting off with simplified. Radial Gradient. Will expand later.

trait Fillable extends Drawable

A 2D geometric element that can be drawn and filled producing GraphicElems.

A 2D geometric element that can be drawn and filled producing GraphicElems.

case
object ForwardButton extends MouseButton

Indicates the forward mouse button was pressed.

Indicates the forward mouse button was pressed.

trait GeomElem

A 2D geometric element to which 2D geometric transformations can be applied. Not all elements preserve their full properties under all transformations. So for example a Circle is no longer a Circle after a Shear transformation, but remains an Ellipse. GraphicElem inherits from GeomElem. A Circle is not a GraphicElem but if we add a fill colour to make a CircleFill, or a line width and line colour to it, we have a GraphicElem a graphical element that can be displayed on a canvas or output to SVG. It is expected that all elements that inherit from GeomElem that are not GraphicElems will be Drawable elements, but this has not been finalised.

A 2D geometric element to which 2D geometric transformations can be applied. Not all elements preserve their full properties under all transformations. So for example a Circle is no longer a Circle after a Shear transformation, but remains an Ellipse. GraphicElem inherits from GeomElem. A Circle is not a GraphicElem but if we add a fill colour to make a CircleFill, or a line width and line colour to it, we have a GraphicElem a graphical element that can be displayed on a canvas or output to SVG. It is expected that all elements that inherit from GeomElem that are not GraphicElems will be Drawable elements, but this has not been finalised.

Companion
object
object GeomElem

Companion object for the GeomElem trait. Contains implicit instances of type GeomElem for all the 2D geometric transformation type classes.

Companion object for the GeomElem trait. Contains implicit instances of type GeomElem for all the 2D geometric transformation type classes.

Companion
class

This trait will be removed. The base trait for all objects that can have mouse / touch pad interaction.

This trait will be removed. The base trait for all objects that can have mouse / touch pad interaction.

The base trait for all objects that can have mouse / touch pad interaction.

The base trait for all objects that can have mouse / touch pad interaction.

A DisplayElem for which all leaf elements of this trait maintain their type through all affine transformation. This type is purely for the convenience of using the fTrans method to perform all the affine transformations. It is not a useful user type hence it has no type class instances associated with it.

A DisplayElem for which all leaf elements of this trait maintain their type through all affine transformation. This type is purely for the convenience of using the fTrans method to perform all the affine transformations. It is not a useful user type hence it has no type class instances associated with it.

This trait is for layout. For placing Display elements in rows and columns. It includes PolygonGraphic and ShapeGraphics but not Line and Curve graphics.

This trait is for layout. For placing Display elements in rows and columns. It includes PolygonGraphic and ShapeGraphics but not Line and Curve graphics.

Companion
object

Companion object for the BoundedGraphic trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion object for the BoundedGraphic trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion
class

This trait is for layout. For placing Display elements in rows and columns. It includes polygon and shape graphics but not line and curve graphics.

This trait is for layout. For placing Display elements in rows and columns. It includes polygon and shape graphics but not line and curve graphics.

This trait is for layout. For placing Display elements in rows and columns. It includes polygon and shape graphics but not line and curve graphics.

This trait is for layout. For placing Display elements in rows and columns. It includes polygon and shape graphics but not line and curve graphics.

This is the new active trait that will replace GraphicActive.

This is the new active trait that will replace GraphicActive.

trait GraphicElem extends GeomElem

This will be sealde in due course. A graphic element is either an element that can be rendered to a display (or printed) or is an active element in a display or both.

This will be sealde in due course. A graphic element is either an element that can be rendered to a display (or printed) or is an active element in a display or both.

Companion
object

Companion object for the DisplayElem trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion object for the DisplayElem trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion
class

This is an active visual canvas object. A pointable polygon / shape with visual, that also knows how much display space it needs and preferred margin space. Not sure about the name. not sure if the trait is useful.

This is an active visual canvas object. A pointable polygon / shape with visual, that also knows how much display space it needs and preferred margin space. Not sure about the name. not sure if the trait is useful.

A DisplayElem for which all leaf elements of this trait maintain their type through all similar transformation. This type is purely for the convenience of using the fTrans method to perform all the Similar transformations. It is not a useful user type hence it has no type class instances associated with it.

A DisplayElem for which all leaf elements of this trait maintain their type through all similar transformation. This type is purely for the convenience of using the fTrans method to perform all the Similar transformations. It is not a useful user type hence it has no type class instances associated with it.

GraphicSimple is a non compound graphic element that can be rendered to a display (or printed) or is an active element in a display, but can't be both that require a GraphicCompound.

GraphicSimple is a non compound graphic element that can be rendered to a display (or printed) or is an active element in a display, but can't be both that require a GraphicCompound.

Companion
object

Companion object for the GraphicSimple trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion object for the GraphicSimple trait. Contains Implicit instances for 2d geometrical transformation type-classes.

Companion
class
case
class HeightAtt(value: Double) extends XANumeric

XML attribute for height.

XML attribute for height.

final
class HexParrX(val height: Double, val cenX: Double, val cenY: Double) extends Hexlign with Show2[Double, Pt2]

Regular Hexagon where two of the sides are parallel to the X Axis

Regular Hexagon where two of the sides are parallel to the X Axis

Companion
object
object HexParrX

Companion object for the regular hexagon aligned to the X Axis class. It has a limited set of 2D geometric transformation type class instances as the type can not be maintained through all affine transformations.

Companion object for the regular hexagon aligned to the X Axis class. It has a limited set of 2D geometric transformation type class instances as the type can not be maintained through all affine transformations.

Companion
class
final
class HexParrY(val width: Double, val cenX: Double, val cenY: Double) extends Hexlign with Show2[Double, Pt2] with ElemDbl3

Regular Hexagon where two of the sides are parallel to the Y Axis. This will be the standard Hex for the Tiling module.

Regular Hexagon where two of the sides are parallel to the Y Axis. This will be the standard Hex for the Tiling module.

Companion
object
object HexParrY

Companion object for the regular hexagon aligned to the Y Axis class. It has a limited set of 2D geometric transformation type class instances as the type can not be maintained through all affine transformations.

Companion object for the regular hexagon aligned to the Y Axis class. It has a limited set of 2D geometric transformation type class instances as the type can not be maintained through all affine transformations.

Companion
class
trait HexReg extends ShapeCentred with Polygon6Plus with Show

Regular Hexagon

Regular Hexagon

Companion
object
object HexReg

Companion object for HegReg trait, contains HexRegImp implementation case for the general case of regular Hexagons.

Companion object for HegReg trait, contains HexRegImp implementation case for the general case of regular Hexagons.

Companion
class
trait Hexlign extends HexReg

A regular Hexagon aligned to the X and Y axes.

A regular Hexagon aligned to the X and Y axes.

class IntGeomImplicit(thisInt: Int)

Extension methods class for Int, for the geom package.

Extension methods class for Int, for the geom package.

case
object LeftAlign extends TextAlign
case
object LeftButton extends MouseButton

Indicates the left mouse button was pressed.

Indicates the left mouse button was pressed.

sealed
trait Line extends LineLike

An infinite length 2 dimensional straight line trait. Note this is the mathematical definition of a line. In SVG and other APIs the name line is used for a line segment, which in openstrat is called a LineSeg

An infinite length 2 dimensional straight line trait. Note this is the mathematical definition of a line. In SVG and other APIs the name line is used for a line segment, which in openstrat is called a LineSeg

final
class Line2sBuff(val unsafeBuff: ArrayBuffer[Double]) extends AnyVal with BuffDbl4s[LineSeg]

Efficient expandable buffer for Line2s.

Efficient expandable buffer for Line2s.

trait LineLike extends GeomElem

Common base trait for Line, LineSeg and Ray.

Common base trait for Line, LineSeg and Ray.

class LinePath(val arrayUnsafe: Array[Double]) extends AffinePreserve with Pt2sLike with LinePathDbl2s[Pt2]

Array[Double] based collection class for a LinePath. Conversion to and from the Vec2s class and Polygon class should not entail a runtime cost.

Array[Double] based collection class for a LinePath. Conversion to and from the Vec2s class and Polygon class should not entail a runtime cost.

Companion
object

Companion object for LinePath contains apply factory object and Persist type class instance.

Companion object for LinePath contains apply factory object and Persist type class instance.

Companion
class
trait LinePathBuilder[B <: ElemValueN, BB <: LinePathLike[B]] extends DataBuilder[B, BB]

A type class for the building of efficient compact Immutable Arrays. Instances for this type class for classes / traits you control should go in the companion object of B not the companion object of BB. This is different from the related ArrBinder[BB] type class where instance should go into the BB companion object. The type parameter is named B rather than A, because normally this will be found by an implicit in the context of a function from A => B or A => M[B]. The methods of this trait mutate and therefore must be used with care. Where ever possible they should not be used directly by end users.

A type class for the building of efficient compact Immutable Arrays. Instances for this type class for classes / traits you control should go in the companion object of B not the companion object of BB. This is different from the related ArrBinder[BB] type class where instance should go into the BB companion object. The type parameter is named B rather than A, because normally this will be found by an implicit in the context of a function from A => B or A => M[B]. The methods of this trait mutate and therefore must be used with care. Where ever possible they should not be used directly by end users.

trait LinePathDbl2s[A <: ElemDbl2] extends LinePathDblNs[A] with DataDbl2s[A]

Trait for creating the line path type class instances for LinePathDbl2s final classes. Instances for the LinePathDbl2sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl2. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

Trait for creating the line path type class instances for LinePathDbl2s final classes. Instances for the LinePathDbl2sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl2. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

trait LinePathDbl3s[A <: ElemDbl3] extends LinePathDblNs[A] with DataDbl3s[A]

Trait for creating the line path type class instances for LinePathDbl3s final classes. Instances for the LinePathDbl3sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl3. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

Trait for creating the line path type class instances for LinePathDbl3s final classes. Instances for the LinePathDbl3sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl3. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

trait LinePathDblNs[A <: ElemDblN] extends LinePathLike[A] with DataDblNs[A]
trait LinePathDblNsBuilder[B <: ElemDblN, BB <: LinePathDblNs[B]]() extends LinePathValueNsBuilder[B, BB]

Trait for creating the builder type class instances for LinePathDblNs final classes. Instances for the LinePathBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

Trait for creating the builder type class instances for LinePathDblNs final classes. Instances for the LinePathBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

case
class LinePathDraw(path: LinePath, lineWidth: Double, colour: Colour) extends GraphicAffineElem with CanvElem
trait LinePathLike[A <: ElemValueN] extends DataValueNs[A]
final
class LinePathMetre(val arrayUnsafe: Array[Double]) extends AnyVal with LinePathDbl2s[PtMetre2]

A quasi line path specified in 2D metre points. The points do not have to lie within the same plane. I'm not sure how useful this class will prove. It has been created for the intermediary step of converting from LinePathLLs to LinePathMetres on world maps.

A quasi line path specified in 2D metre points. The points do not have to lie within the same plane. I'm not sure how useful this class will prove. It has been created for the intermediary step of converting from LinePathLLs to LinePathMetres on world maps.

Companion
object

Companion object for LinePathM3s. Contains apply factory method fromArrayDbl and Persist Implicit.

Companion object for LinePathM3s. Contains apply factory method fromArrayDbl and Persist Implicit.

Companion
class
final
class LinePathMetre3(val arrayUnsafe: Array[Double]) extends AnyVal with LinePathDbl3s[PtMetre3]

A quasi line path specified in 3D metre points. The points do not have to lie within the same plane. I'm not sure how useful this class will prove. It has been created for the intermediary step of converting from LinePathLLs to LinePathMetres on world maps.

A quasi line path specified in 3D metre points. The points do not have to lie within the same plane. I'm not sure how useful this class will prove. It has been created for the intermediary step of converting from LinePathLLs to LinePathMetres on world maps.

Companion
object

Companion object for LinePathM3s. Contains apply factory method fromArrayDbl and Persist Implicit.

Companion object for LinePathM3s. Contains apply factory method fromArrayDbl and Persist Implicit.

Companion
class
trait LinePathValueNsBuilder[B <: ElemValueN, BB <: LinePathLike[B]] extends LinePathBuilder[B, BB]

Trait for creating the line path builder instances for the LinePathBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

Trait for creating the line path builder instances for the LinePathBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

final
class LineSeg(val startX: Double, val startY: Double, val endX: Double, val endY: Double) extends LineSegLike[Pt2] with LineLike with CurveSeg with Show2[Pt2, Pt2] with ElemDbl4 with AffinePreserve

Straight line segment. A straight line in every day terminology. Mathematically: 2 dimensional directed, line segment. The name was chosen to avoid ambiguity.

Straight line segment. A straight line in every day terminology. Mathematically: 2 dimensional directed, line segment. The name was chosen to avoid ambiguity.

Companion
object
object LineSeg

Companion object for the LineSeg class. Contains factory apply methods and implicit instances for LineSegs.

Companion object for the LineSeg class. Contains factory apply methods and implicit instances for LineSegs.

Companion
class
final
class LineSeg3(val startX: Double, val startY: Double, val startZ: Double, val endX: Double, val endY: Double, val endZ: Double) extends LineSegLike[Pt3] with ElemDbl6

A 3 dimensional line segment. A straight line between two points in a 3d space.

A 3 dimensional line segment. A straight line between two points in a 3d space.

Companion
object
object LineSeg3

Companion object for LineSeg3 contains factory apply methods.

Companion object for LineSeg3 contains factory apply methods.

Companion
class

To be removed.

To be removed.

case
class LineSegDraw(curveSeg: LineSeg, width: Double, colour: Colour) extends CurveSegGraphic with AffinePreserve with CanvElem

A Graphic for a straight line. It is defined by its start and end points, the line width or thickness and the colour of the line.

A Graphic for a straight line. It is defined by its start and end points, the line width or thickness and the colour of the line.

Companion
object
Companion
class
trait LineSegLike[VT]

A class that is like a LineSeg, includes LineSeg and LineSegMetre. The trait takes the type parameter of the vertex.

A class that is like a LineSeg, includes LineSeg and LineSegMetre. The trait takes the type parameter of the vertex.

class LineSegMetre(xStartMetres: Double, yStartMetres: Double, xEndMetres: Double, yEndMetres: Double) extends LineSegLike[PtMetre2]

A 2 dimensional line segment measured in metres, equivalent of the LineSeg class. A straight line between two points on a 2 dimensional flat surface.

A 2 dimensional line segment measured in metres, equivalent of the LineSeg class. A straight line between two points on a 2 dimensional flat surface.

Companion
object
Companion
class
class LineSegMetre3(xStartMs: Double, yStartMs: Double, zStartMs: Double, xEndMs: Double, yEndMs: Double, zEndMs: Double) extends LineSegLike[PtMetre3] with ElemDbl6

A line segment in 3 dimensional space specified in metres. A straight line between two points in 3D.

A line segment in 3 dimensional space specified in metres. A straight line between two points in 3D.

Companion
object

Companion object for LineSegMetre3 trait contains apply factory method.

Companion object for LineSegMetre3 trait contains apply factory method.

Companion
class
class LineSegs(val arrayUnsafe: Array[Double]) extends ArrDbl4s[LineSeg] with AffinePreserve

Compact immutable Array[Double] based collection class for LineSegs. LineSeg is the library's term for a mathematical straight line segment, but what in common parlance is often just referred to as a line.

Compact immutable Array[Double] based collection class for LineSegs. LineSeg is the library's term for a mathematical straight line segment, but what in common parlance is often just referred to as a line.

Companion
object

Companion object for the LineSegs class.

Companion object for the LineSegs class.

Companion
class
object LineTail

This provides factory methods to create a 2 dimensional headless line segment. There is no independent LineTail class. This is one of 3 factory objects to CurveTail.

This provides factory methods to create a 2 dimensional headless line segment. There is no independent LineTail class. This is one of 3 factory objects to CurveTail.

case
class LinesDraw(lines: LineSegs, lineWidth: Double, colour: Colour) extends GraphicAffineElem with CanvElem

I think its to better to use the mame lineWidth consistently.

I think its to better to use the mame lineWidth consistently.

Companion
object
object LinesDraw
Companion
class
implicit
class MetreExtensionsImplicit(thisMetres: Metres)
case
object MiddleButton extends MouseButton

Indicates the middel mouse button was pressed.

Indicates the middel mouse button was pressed.

sealed

A mouse button, used to return events from a graphical user interface.

A mouse button, used to return events from a graphical user interface.

case

MultipleButton is needed for completeness for mouse events in js when the Event is NOT instigated by a mouse button.

MultipleButton is needed for completeness for mouse events in js when the Event is NOT instigated by a mouse button.

case
object NoButton extends MouseButton

Indicates no mouse button was pressed.

Indicates no mouse button was pressed.

trait NoCanvElem extends GraphicElem

A graphic element GraphicElem that is not one of the standard canvas elements CanvElem, it must provide a conversion into those standard elements.

A graphic element GraphicElem that is not one of the standard canvas elements CanvElem, it must provide a conversion into those standard elements.

implicit
class OptionGeomImplicit[A](thisOption: Option[A])

This is an object where the boundary points for top left, top right, bottom right and bottom left are defined. This trait is used by some geometric elements as well as pCanv.CanvasPlatform and pCanv.Panel.

This is an object where the boundary points for top left, top right, bottom right and bottom left are defined. This trait is used by some geometric elements as well as pCanv.CanvasPlatform and pCanv.Panel.

A 2D geometric element where the Ordinal edge points, the cardinal edge points and the centre are defined.

A 2D geometric element where the Ordinal edge points, the cardinal edge points and the centre are defined.

class OrdinaledExtensions[A <: OrdinaledElem](thisA: A)(implicit ev: Slate[A])

Extension class for OrdinaledElems.

Extension class for OrdinaledElems.

object Pentagram
case
class PhiRect(height: Double, cenX: Double, cenY: Double) extends Rect with PhiRectangle
Companion
object
object PhiRect
Companion
class
case
class PhiRectY(width: Double, cenX: Double, cenY: Double) extends Rect with PhiRectangle
Companion
object
object PhiRectY
Companion
class
trait PhiRectangle extends Rectangle

Golden rectangle, a rectangle whose side lengths are in the golden ratio, 1 : 1 + 5 2 {\displaystyle 1:{\tfrac {1+{\sqrt {5 }}} {2 }}} 1:{\tfrac {1+{\sqrt {5 }}} {2}}, which is 1 : φ {\displaystyle 1:\varphi } 1:\varphi (the Greek letter phi), where φ {\displaystyle \varphi } \varphi is approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {1+{\sqrt {5 }}} approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {2 }}} {1+{\sqrt {5 }}} {2}}, which is 1 : φ {\displaystyle 1:\varphi } 1:\varphi (the Greek letter phi), where φ {\displaystyle \varphi } \varphi is approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {1+{\sqrt {5 }}} approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. Golden rectangle, a rectangle whose side lengths are in the golden ratio, 1 : 1 + 5 2 {\displaystyle 1:{\tfrac {1+{\sqrt {5 }}} {1+{\sqrt {5 }}} {2}}, which is 1 : φ {\displaystyle 1:\varphi } 1:\varphi (the Greek letter phi), where φ {\displaystyle \varphi } \varphi is approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {1+{\sqrt {5 }}} approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square.

Golden rectangle, a rectangle whose side lengths are in the golden ratio, 1 : 1 + 5 2 {\displaystyle 1:{\tfrac {1+{\sqrt {5 }}} {2 }}} 1:{\tfrac {1+{\sqrt {5 }}} {2}}, which is 1 : φ {\displaystyle 1:\varphi } 1:\varphi (the Greek letter phi), where φ {\displaystyle \varphi } \varphi is approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {1+{\sqrt {5 }}} approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {2 }}} {1+{\sqrt {5 }}} {2}}, which is 1 : φ {\displaystyle 1:\varphi } 1:\varphi (the Greek letter phi), where φ {\displaystyle \varphi } \varphi is approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {1+{\sqrt {5 }}} approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. Golden rectangle, a rectangle whose side lengths are in the golden ratio, 1 : 1 + 5 2 {\displaystyle 1:{\tfrac {1+{\sqrt {5 }}} {1+{\sqrt {5 }}} {2}}, which is 1 : φ {\displaystyle 1:\varphi } 1:\varphi (the Greek letter phi), where φ {\displaystyle \varphi } \varphi is approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square. {1+{\sqrt {5 }}} approximately 1.618. Golden rectangles exhibit a special form of self-similarity: All rectangles created by adding or removing a square are Golden rectangles as well. A method to construct a golden rectangle. Owing to the Pythagorean theorem,[a] the diagonal dividing one half of a square equals the radius of a circle whose outermost point is also the corner of a golden rectangle added to the square.

Companion
object

Companion object for the PhiRectangle trait. It contains the PhiRectangle.PhiRectangleImp implementation class an apply factory method that delegates to it.

Companion object for the PhiRectangle trait. It contains the PhiRectangle.PhiRectangleImp implementation class an apply factory method that delegates to it.

Companion
class

A pointable shape

A pointable shape

case
class PolyCurveAllOld(shape: ShapeGenOld, pointerId: AnyRef, str: String, fillColour: Colour, fontSize: Int, lineColour: Colour, lineWidth: Double) extends PolyCurveElem with PolyCurveActive
case
class PolyCurveCentred(cen: Pt2, segs: ShapeGenOld) extends AffinePreserve

So there is a lack of clarity over whether the segs are relative to the cen, and if the cen is needed at all.

So there is a lack of clarity over whether the segs are relative to the cen, and if the cen is needed at all.

case
class PolyCurveDraw(shape: ShapeGenOld, colour: Colour, lineWidth: Double) extends PolyCurveElem
case
class PolyCurveFill(shape: ShapeGenOld, colour: Colour) extends PolyCurveElem
case
class PolyCurveFillDraw(shape: ShapeGenOld, fillColour: Colour, lineColour: Colour, lineWidth: Double) extends PolyCurveElem
case
class PolyCurveFillDrawText(shape: ShapeGenOld, fillColour: Colour, str: String, fontSize: Int, lineColour: Colour, lineWidth: Double) extends PolyCurveElem
case
class PolyCurveParentFull(cen: Pt2, shape: ShapeGenOld, pointerId: AnyRef, children: Arr[GraphicAffineElem]) extends GraphicParentFull with PolyCurveActive
Companion
object
Companion
class
trait Polygon extends Shape with BoundedElem with Approx[Double] with PolygonLike[Pt2]

A mathematical closed polygon. The general case can be instantiated with PolygonGen, but it provides the interface for particular sub sets of polygons such as triangles and square. Mathematically a closed polygon made up of straight line segments. The default convention is to number the vertices in a clockwise direction, with vertex 1 the first vertex that is clockwise from 12 O'Clock. Sides are numbered in a corresponding manner with then end point of side n sdn at vertex n.

A mathematical closed polygon. The general case can be instantiated with PolygonGen, but it provides the interface for particular sub sets of polygons such as triangles and square. Mathematically a closed polygon made up of straight line segments. The default convention is to number the vertices in a clockwise direction, with vertex 1 the first vertex that is clockwise from 12 O'Clock. Sides are numbered in a corresponding manner with then end point of side n sdn at vertex n.

Companion
object
object Polygon

Companion object for the Polygon trait, contains factory apply methods and implicit instances for all 2D affine geometric transformations.

Companion object for the Polygon trait, contains factory apply methods and implicit instances for all 2D affine geometric transformations.

Companion
class
trait Polygon3Plus extends Polygon

A Polygon with at least 3 vertices. The PolygonNPlus traits include values for the vertices and the x and y components of the vertices. The X and Y components are included because Graphics implementation APIs use them.

A Polygon with at least 3 vertices. The PolygonNPlus traits include values for the vertices and the x and y components of the vertices. The X and Y components are included because Graphics implementation APIs use them.

A Polygon with at least 4 vertices.

A Polygon with at least 4 vertices.

A Polygon with at least 5 vertices.

A Polygon with at least 5 vertices.

A Polygon with at least 6 vertices.

A Polygon with at least 6 vertices.

case
class PolygonActive(shape: Polygon, pointerId: AnyRef) extends GraphicAffineElem with GraphicClickable with PolygonGraphicSimple

A pointable polygon without visual.

A pointable polygon without visual.

trait PolygonBuilder[B <: ElemValueN, +BB <: PolygonLike[B]] extends DataBuilderCommon[BB]

A type class for the building of efficient compact Immutable Arrays. Instances for this type class for classes / traits you control should go in the companion object of B not the companion object of BB. This is different from the related ArrBinder[BB] type class where instance should go into the BB companion object. The type parameter is named B rather than A, because normally this will be found by an implicit in the context of a function from A => B or A => M[B]. The methods of this trait mutate and therefore must be used with care. Where ever possible they should not be used directly by end users.

A type class for the building of efficient compact Immutable Arrays. Instances for this type class for classes / traits you control should go in the companion object of B not the companion object of BB. This is different from the related ArrBinder[BB] type class where instance should go into the BB companion object. The type parameter is named B rather than A, because normally this will be found by an implicit in the context of a function from A => B or A => M[B]. The methods of this trait mutate and therefore must be used with care. Where ever possible they should not be used directly by end users.

A compound polygon based Graphic. May contain multiple facets and child graphic members.

A compound polygon based Graphic. May contain multiple facets and child graphic members.

Companion
object

Companion object for the PolygonCompound trait contains factory apply method and implicit instances for the 2D geometric transformation type classes.

Companion object for the PolygonCompound trait contains factory apply method and implicit instances for the 2D geometric transformation type classes.

Companion
class
trait PolygonDbl2s[VT <: ElemDbl2] extends PolygonDblNs[VT] with DataDbl2s[VT]

A polygon whose elements are defined by 2 Doubles.

A polygon whose elements are defined by 2 Doubles.

trait PolygonDbl2sBuilder[B <: ElemDbl2, BB <: PolygonDbl2s[B]] extends PolygonDblNsBuilder[B, BB]

Trait for creating the line path type class instances for PolygonDbl2s final classes. Instances for the PolygonDbl2sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl2. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

Trait for creating the line path type class instances for PolygonDbl2s final classes. Instances for the PolygonDbl2sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl2. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

trait PolygonDbl3s[VT <: ElemDbl3] extends PolygonDblNs[VT] with DataDbl3s[VT]

A polygon whose elements are defined by 3 Doubles.

A polygon whose elements are defined by 3 Doubles.

trait PolygonDbl3sBuilder[B <: ElemDbl3, BB <: PolygonDbl3s[B]] extends PolygonDblNsBuilder[B, BB]

Trait for creating the line path type class instances for PolygonDbl3s final classes. Instances for the PolygonDbl3sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl3. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

Trait for creating the line path type class instances for PolygonDbl3s final classes. Instances for the PolygonDbl3sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemDbl3. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

trait PolygonDblNs[VT <: ElemDblN] extends PolygonValueN[VT] with DataDblNs[VT]

A polygon whose elements are defined by Doubles.

A polygon whose elements are defined by Doubles.

trait PolygonDblNsBuilder[B <: ElemDblN, BB <: PolygonDblNs[B]]() extends PolygonValueNsBuilder[B, BB]

Trait for creating the builder type class instances for PolygonDblNs final classes. Instances for the PolygonBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

Trait for creating the builder type class instances for PolygonDblNs final classes. Instances for the PolygonBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

Immutable Graphic element that defines and draws a Polygon.

Immutable Graphic element that defines and draws a Polygon.

Companion
object
Companion
class

Immutable Graphic element that defines and fills a Polygon. This element can be trnsformed through all the Affine transformations and a PolygonFill will be returned.

Immutable Graphic element that defines and fills a Polygon. This element can be trnsformed through all the Affine transformations and a PolygonFill will be returned.

Companion
object

Companion object for PolygonFill trait. Contains an implementation class PolygonFillImp, a factory method returning the PolygonFill type and implicit instances for the 2D geometric transformation type classes.

Companion object for PolygonFill trait. Contains an implementation class PolygonFillImp, a factory method returning the PolygonFill type and implicit instances for the 2D geometric transformation type classes.

Companion
class
final
class PolygonGen(val arrayUnsafe: Array[Double]) extends Polygon with Pt2sLike with AffinePreserve with DataDbl2s[Pt2]

The implementation class for a general Polygon as opposed to a specific Polygon such as a Square or a Rectangle, is encoded as a sequence of plain 2 dimension (mathematical) vectors. Minimum length 3. Clockwise is the default. Polygon may be altered to include a centre.

The implementation class for a general Polygon as opposed to a specific Polygon such as a Square or a Rectangle, is encoded as a sequence of plain 2 dimension (mathematical) vectors. Minimum length 3. Clockwise is the default. Polygon may be altered to include a centre.

Companion
object

Companion object for PolygonGen.

Companion object for PolygonGen.

Companion
class

A Polygon based graphic. If you just want a general polygon as opposed to specifically specified Polygons such as Rectangle, Square or Triangle use the implementation class PolygonCompound.

A Polygon based graphic. If you just want a general polygon as opposed to specifically specified Polygons such as Rectangle, Square or Triangle use the implementation class PolygonCompound.

Companion
object

Companion object for Polygon Graphic, contains implicit instances for the 2D geometric transformations.

Companion object for Polygon Graphic, contains implicit instances for the 2D geometric transformations.

Companion
class

This trait may be removed.

This trait may be removed.

Companion
object

Companion object for the PolygonGraphicSimple trait, contains implicit instances for the 2D geometric transformation classes.

Companion object for the PolygonGraphicSimple trait, contains implicit instances for the 2D geometric transformation classes.

Companion
class
trait PolygonInt2s[VT <: ElemInt2] extends PolygonIntNs[VT] with DataInt2s[VT]

A polygon whose elements are defined by 2 ints.

A polygon whose elements are defined by 2 ints.

trait PolygonInt2sBuilder[B <: ElemInt2, BB <: PolygonInt2s[B]] extends PolygonIntNsBuilder[B, BB]

Trait for creating the line path type class instances for PolygonInt2s final classes. Instances for the PolygonInt2sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemInt2. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

Trait for creating the line path type class instances for PolygonInt2s final classes. Instances for the PolygonInt2sBuilder type class, for classes / traits you control, should go in the companion object of type B, which will extend ElemInt2. The first type parameter is called B, because it corresponds to the B in map[B](f: A => B)(implicit build: ArrTBuilder[B, ArrB]): ArrB function.

trait PolygonIntNs[VT <: ElemIntN] extends PolygonValueN[VT] with DataIntNs[VT]

A polygon whose elements are defined by Intes.

A polygon whose elements are defined by Intes.

trait PolygonIntNsBuilder[B <: ElemIntN, BB <: PolygonIntNs[B]]() extends PolygonValueNsBuilder[B, BB]

Trait for creating the builder type class instances for PolygonDblNs final classes. Instances for the PolygonBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

Trait for creating the builder type class instances for PolygonDblNs final classes. Instances for the PolygonBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

final
class PolygonKMs(val arrayUnsafe: Array[Double]) extends AnyVal
trait PolygonLike[VT]

A Polygon like object with 2 dimensional point vertices, where the points dimensions could be specified in metres, latitude, longitude etc as well as the regular scalar values of the standard Polygon. *

A Polygon like object with 2 dimensional point vertices, where the points dimensions could be specified in metres, latitude, longitude etc as well as the regular scalar values of the standard Polygon. *

Type Params
VT

The type of the vertices in this polygon like trait. For a standard Polygon this will be a Pt2, but for example for a PolygonMetre3 it would be a PtMetre3.

final
class PolygonMetre(val arrayUnsafe: Array[Double]) extends AnyVal with ArrDbl2s[PtMetre2] with PolygonDbl2s[PtMetre2]
Companion
object

The companion object for PolygonDist. Provides an implicit builder.

The companion object for PolygonDist. Provides an implicit builder.

Companion
class
final
class PolygonMetre3(val arrayUnsafe: Array[Double]) extends AnyVal with PolygonDbl3s[PtMetre3]

A quasi Polygon specified in 3D metre points. This is not a proper polygon as the points do not have to lie within the same plane. I'm not sure how useful this class will prove. It has been created for the intermediary step of converting from LatLongss to PolygonMetres on world maps.

A quasi Polygon specified in 3D metre points. This is not a proper polygon as the points do not have to lie within the same plane. I'm not sure how useful this class will prove. It has been created for the intermediary step of converting from LatLongss to PolygonMetres on world maps.

Companion
object

Companion object for PolygonMetre3. Contains apply factory method fromArrayDbl and Persist Implicit.

Companion object for PolygonMetre3. Contains apply factory method fromArrayDbl and Persist Implicit.

Companion
class
trait PolygonValueN[VT <: ElemValueN] extends PolygonLike[VT] with DataValueNs[VT]
trait PolygonValueNsBuilder[B <: ElemValueN, BB <: PolygonLike[B]] extends PolygonBuilder[B, BB]

Trait for creating the line path builder instances for the PolygonBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

Trait for creating the line path builder instances for the PolygonBuilder type class, for classes / traits you control, should go in the companion object of B. The first type parameter is called B, because to corresponds to the B in map(f: A => B): ArrB function.

object Polygons

Companion object for the Polygons class.

Companion object for the Polygons class.

trait Prolign[A]

Type class for Prolign transformations. These are proportionate and aligned to X and Y axes transformations. This transformation set preserves Circles and Squares. It also preserves the alignment of Squares and Rectangle to the axes.

Type class for Prolign transformations. These are proportionate and aligned to X and Y axes transformations. This transformation set preserves Circles and Squares. It also preserves the alignment of Squares and Rectangle to the axes.

Companion
object
object Prolign

Companion object for the Prolign type class.

Companion object for the Prolign type class.

Companion
class
final case
class ProlignMatrix(vFactor: Double, negY: Boolean, negX: Boolean, xDelta: Double, yDelta: Double)

A matrix for proportionate and aligned to X and Y axes transformations. This transformation set preserves Circles and Squares. It also preserves the alignment of Squares and Rectangle to the axes.

A matrix for proportionate and aligned to X and Y axes transformations. This transformation set preserves Circles and Squares. It also preserves the alignment of Squares and Rectangle to the axes.

Companion
object

Companion object for Prolign Matrices.

Companion object for Prolign Matrices.

Companion
class
implicit
class ProlignMatrixExtension[T](val value: T)(implicit ev: Prolign[T])

A class that can preserve its type through all the Prolign, proportionate XY axes aligned transformations, using a Pt2 => Pt2 function. These are translate Slate, Scale and negX and negY, the TransAxes, transformations.

A class that can preserve its type through all the Prolign, proportionate XY axes aligned transformations, using a Pt2 => Pt2 function. These are translate Slate, Scale and negX and negY, the TransAxes, transformations.

final
class Pt2(val x: Double, val y: Double) extends Vec2Like

A 2 dimensional point. Pt2s can be transformed through the 2D geometric transformations. If you wish to encode a relative position then use a Vec2 instead. Thanks to René Descartes for this.

A 2 dimensional point. Pt2s can be transformed through the 2D geometric transformations. If you wish to encode a relative position then use a Vec2 instead. Thanks to René Descartes for this.

Companion
object
object Pt2

Companion object for Pt2. Contains apply factory and unapply methods. Persist and EqT implicit type classes instances and instances for all the 2D geometric transformation type classes.

Companion object for Pt2. Contains apply factory and unapply methods. Persist and EqT implicit type classes instances and instances for all the 2D geometric transformation type classes.

Companion
class
final
class Pt2s(val arrayUnsafe: Array[Double]) extends AffinePreserve with Pt2sLike with ArrDbl2s[Pt2]

The default Array[Double] based collection class for Pt2s. Use Polygon or LinePath to represent those structures. Conversion to and from Polygon class and LinePath class should not entail a runtime cost.

The default Array[Double] based collection class for Pt2s. Use Polygon or LinePath to represent those structures. Conversion to and from Polygon class and LinePath class should not entail a runtime cost.

Companion
object
object Pt2s extends DataDbl2sCompanion[Pt2, Pt2s]
Companion
class
trait Pt2sLike extends DataDbl2s[Pt2]

The purpose of this trait is to provide the helper method for Vec2 transformations.

The purpose of this trait is to provide the helper method for Vec2 transformations.

final
class Pt3(val x: Double, val y: Double, val z: Double) extends Vec3Like

A 3 dimensional point. Right-handed coordinate system is the default.

A 3 dimensional point. Right-handed coordinate system is the default.

Companion
object
object Pt3

Companion object for Pt3 contains apply factory method, unapply an type class instances.

Companion object for Pt3 contains apply factory method, unapply an type class instances.

Companion
class
final
class Pt3Buff(val unsafeBuff: ArrayBuffer[Double]) extends AnyVal with BuffDbl3s[Pt3]

A specialised flat ArrayBuffer[Double] based class for Pt3s collections.

A specialised flat ArrayBuffer[Double] based class for Pt3s collections.

final
class Pt3Km(val xKMetres: Double, val yKMetres: Double, val zKMetres: Double) extends Pt3LengthUnit
final
class Pt3s(val arrayUnsafe: Array[Double]) extends AnyVal with ArrDbl3s[Pt3]

An immutable flat efficient Array backed sequence collection class of 3 dimensional points. This is the default collection class for [Pt3]s.

An immutable flat efficient Array backed sequence collection class of 3 dimensional points. This is the default collection class for [Pt3]s.

final
class PtMetre2(val xMetresNum: Double, val yMetresNum: Double) extends Show2Dbls

A 2 dimensional point specified in Metres as units rather than pure scalar numbers.

A 2 dimensional point specified in Metres as units rather than pure scalar numbers.

Companion
object
object PtMetre2

Companion object for PtMetre2 class contains factory methods.

Companion object for PtMetre2 class contains factory methods.

Companion
class
final
class PtMetre2Arr(val arrayUnsafe: Array[Double]) extends AnyVal with ArrDbl2s[PtMetre2]

Specialised immutable Array based collection class for PtMetre2s.

Specialised immutable Array based collection class for PtMetre2s.

Companion
object

Companion object for the PtMetre2Arr class. Contains implicit Instance for Persist type class.

Companion object for the PtMetre2Arr class. Contains implicit Instance for Persist type class.

Companion
class
final
class PtMetre3(val xMetres: Double, val yMetres: Double, val zMetres: Double) extends ElemDbl3

3 dimensional point specified using metres as units rather than pure numbers.

3 dimensional point specified using metres as units rather than pure numbers.

Companion
object
object PtMetre3

Companion object for the Metres3 class.

Companion object for the Metres3 class.

Companion
class
final
class PtMetre3Arr(val arrayUnsafe: Array[Double]) extends AnyVal with ArrDbl3s[PtMetre3]

Collection class for Pt3s. Only use this if the more specific PolygonMetre andLinePathMs classes are not appropriate.

Collection class for Pt3s. Only use this if the more specific PolygonMetre andLinePathMs classes are not appropriate.

Companion
object
class Ray extends LineLike

Geometrical Ray.

Geometrical Ray.

Companion
object
object Ray

Companion object for the Ray class, contains apply factory methods.

Companion object for the Ray class, contains apply factory methods.

Companion
class

A Rectangle aligned to the X and Y axes.

A Rectangle aligned to the X and Y axes.

Companion
object
object Rect

Companion object for the Rect trait contains factory methods for the Rect trait which delegate to the RectImp class.

Companion object for the Rect trait contains factory methods for the Rect trait which delegate to the RectImp class.

Companion
class

A rectangular object aligned with the X and Y axes and centred on x = 0, y = 0. Sub traits include Rectangle and pCanv.Panel.

A rectangular object aligned with the X and Y axes and centred on x = 0, y = 0. Sub traits include Rectangle and pCanv.Panel.

case
class RectCompound(shape: Rect, facets: Arr[GraphicFacet], children: Arr[GraphicElem]) extends RectGraphic with RectangleCompound

This is a compound graphic based on a Rect shape. A rectangle aligned to the X and Y axes.

This is a compound graphic based on a Rect shape. A rectangle aligned to the X and Y axes.

Companion
object

Companion object for the RectCompound trait, contains implicit instances for 2D geometric transformation type classes.

Companion object for the RectCompound trait, contains implicit instances for 2D geometric transformation type classes.

Companion
class

A rectangular Graphic aligned to the axes, filled with a single colour.

A rectangular Graphic aligned to the axes, filled with a single colour.

Companion
object
object RectFill

Companion object for the RectFill trait, contains a RectFillImp implementation class and an apply method that delegates to it.

Companion object for the RectFill trait, contains a RectFillImp implementation class and an apply method that delegates to it.

Companion
class

A graphic based on a [[Rect], a rectangle aligned to the X and Y axes.

A graphic based on a [[Rect], a rectangle aligned to the X and Y axes.

A simple non-compound graphic based on a [[Rect], a rectangle aligned to the X and Y axes.

A simple non-compound graphic based on a [[Rect], a rectangle aligned to the X and Y axes.

trait RectS2S4 extends Rectangle

Rectangle that is in part specified by points s2Cen and s4Cen. This is the Square.SquareImp and Rect.RectImp classes. This trait is purely for implementation. It does not have value as a library user interface type.

Rectangle that is in part specified by points s2Cen and s4Cen. This is the Square.SquareImp and Rect.RectImp classes. This trait is purely for implementation. It does not have value as a library user interface type.

The Rectangle trait defines 4 vertices v0, v1, v2 and v3. The leaf classes of this class may or may not be squares and may or may not be aligned to the X and Y Axes. You can build a Rectangle using the factory methods in the Rectangle companion object. However if your rectangle is a aligned to the X and Y axis prefer the factory methods on the companion object of the shorter named Rect trait.

The Rectangle trait defines 4 vertices v0, v1, v2 and v3. The leaf classes of this class may or may not be squares and may or may not be aligned to the X and Y Axes. You can build a Rectangle using the factory methods in the Rectangle companion object. However if your rectangle is a aligned to the X and Y axis prefer the factory methods on the companion object of the shorter named Rect trait.

Companion
object
object Rectangle

Companion object fot the Rectangle trait. Contains Rectangle.RectangleImp the implementation class for non specialised rectangles. It also contains various factory methods that delegate to the Rectangle.RectangleImp class.

Companion object fot the Rectangle trait. Contains Rectangle.RectangleImp the implementation class for non specialised rectangles. It also contains various factory methods that delegate to the Rectangle.RectangleImp class.

Companion
class

A compound graphic for rectangles.

A compound graphic for rectangles.

Companion
object

Companion object for RectangleCompound. Conatains the RectangleCompound.RectangleCompoundImp implementatin class for the general case of Rectangles and an apply factor method that delegats to it.

Companion object for RectangleCompound. Conatains the RectangleCompound.RectangleCompoundImp implementatin class for the general case of Rectangles and an apply factor method that delegats to it.

Companion
class

Graphic that draws a rectangle.

Graphic that draws a rectangle.

Companion
object

Companion object for RectangleDraw contains factory method and implementation class.

Companion object for RectangleDraw contains factory method and implementation class.

Companion
class

Graphic to fill a Rectangle with a single colour.

Graphic to fill a Rectangle with a single colour.

Companion
object

Companion object for RectangleFill, contains an Implementation class RectangleFill.RectangleFillImp and an apply factor method that delegates to it. It also contains implicit instances for 2D geometric transformations.

Companion object for RectangleFill, contains an Implementation class RectangleFill.RectangleFillImp and an apply factor method that delegates to it. It also contains implicit instances for 2D geometric transformations.

Companion
class

A Rectangle like final class aligned to the X and Y axes.

A Rectangle like final class aligned to the X and Y axes.

trait Reflect[T]

Type class for reflect 2 dimensional vector transformations. Each transformation method has been given its own Type class and associated extension class. Different sets of transformations can then be combined.

Type class for reflect 2 dimensional vector transformations. Each transformation method has been given its own Type class and associated extension class. Different sets of transformations can then be combined.

Companion
object
object Reflect

Companion object for the Reflect type class. Contains instances. 2 dimensional vector transformations type class.

Companion object for the Reflect type class. Contains instances. 2 dimensional vector transformations type class.

Companion
class
class ReflectExtensions[T](val value: T, ev: Reflect[T])

Extension methods for the Reflect type class.

Extension methods for the Reflect type class.

case
object RightAlign extends TextAlign
case
object RightButton extends MouseButton

Indicates the right mouse button was pressed.

Indicates the right mouse button was pressed.

trait Rotate[T]

Type class for 2D geometric rotation transformations of objects of type T.

Type class for 2D geometric rotation transformations of objects of type T.

Companion
object
object Rotate

Companion object for the Rotate[T] type class, contains implicit instances for collections and other container classes.

Companion object for the Rotate[T] type class, contains implicit instances for collections and other container classes.

Companion
class
class RotateExtensions[T](value: T, ev: Rotate[T]) extends RotateGenExtensions[T]

Extension class for instances of the Rotate type class.

Extension class for instances of the Rotate type class.

trait Scale[T]

Type class for scale 2 dimensional vector transformations. Each transformation method has been given its own Type class and associated extension class. Different sets of transformations can then be combined.

Type class for scale 2 dimensional vector transformations. Each transformation method has been given its own Type class and associated extension class. Different sets of transformations can then be combined.

Companion
object
object Scale

Companion object for the Scale type class. Contains instances. 2 dimensional vector transformations type class.

Companion object for the Scale type class. Contains instances. 2 dimensional vector transformations type class.

Companion
class
class ScaleExtensions[T](val value: T, ev: Scale[T])

Extension methods for the Scale type class.

Extension methods for the Scale type class.

trait ScaleXY[T]

Type class trait for scale transformation where the X and Y components can be scaled independently.

Type class trait for scale transformation where the X and Y components can be scaled independently.

Companion
object
object ScaleXY

Companion object for scale transformation where the X and Y components can be scaled independently. Contains instance for comon types.

Companion object for scale transformation where the X and Y components can be scaled independently. Contains instance for comon types.

Companion
class
trait Shape extends Fillable with BoundedElem

A closed shape. It has vertices and the vertices are connected by straight lines or curved lines. Shape does not extend CurvePath but it does extend Fillable which extends Drawable.Not sure if Shape and Fillable should be seperate classes.

A closed shape. It has vertices and the vertices are connected by straight lines or curved lines. Shape does not extend CurvePath but it does extend Fillable which extends Drawable.Not sure if Shape and Fillable should be seperate classes.

Companion
object
object Shape

Companion object for the Shape trait. Contains implicit instances of type TransElem for all the 2d geometric transformation type classes.

Companion object for the Shape trait. Contains implicit instances of type TransElem for all the 2d geometric transformation type classes.

Companion
class
case
class ShapeActive(id: Any) extends GraphicFacet
trait ShapeCentred extends Shape with CentredElem

A Shape with a centre field.

A Shape with a centre field.

A shape based compound graphic.

A shape based compound graphic.

Companion
object

Companion object for the ShapeCompound trait, contains implicit instances for 2D geometric transoframtion type classes for common collection and other containner classes.

Companion object for the ShapeCompound trait, contains implicit instances for 2D geometric transoframtion type classes for common collection and other containner classes.

Companion
class

A simple no compound graphic that draws a shape. The line has a single width and colour.

A simple no compound graphic that draws a shape. The line has a single width and colour.

Companion
object
object ShapeDraw
Companion
class

A simple plain colour fill graphic.

A simple plain colour fill graphic.

Companion
object
object ShapeFill
Companion
class
class ShapeGen(val unsafeArray: Array[CurveSeg]) extends Shape with AxisFree

The new version of ShapeGen. Will prioritise easy and simplicity of functionality over efficiency. A generalised implementation of a Shape. A closed sequence of curve segments.

The new version of ShapeGen. Will prioritise easy and simplicity of functionality over efficiency. A generalised implementation of a Shape. A closed sequence of curve segments.

Companion
object
object ShapeGen

Companion object of the ShapeGen class contains implicit instances for 2D geometric transformations.

Companion object of the ShapeGen class contains implicit instances for 2D geometric transformations.

Companion
class
case
class ShapeGenDrawOld(shape: ShapeGenOld, lineColour: Colour, lineWidth: Double) extends CanvElem with AxisFree

To be phased out.

To be phased out.

final case
class ShapeGenFillOld(shape: ShapeGenOld, colour: Colour) extends CanvElem with AxisFree

To be phased out.

To be phased out.

class ShapeGenOld(val arrayUnsafe: Array[Double]) extends DataDbl7s[CurveTail] with AffinePreserve

The generalised implementation of a Shape. A closed sequence of curve segments. An Array[Double] based collection for a sequence of CurveSegs, similar to a Polygon which is an Array[Double based collection of just LineSegs. It Uses 6 Doubles for each CurveSeg. The first Double of each curveSeg is set to Negative Infinity for a LineSeg positive infinity for an ArcSeg, but represents the x component of the first control point for a BezierSeg.

The generalised implementation of a Shape. A closed sequence of curve segments. An Array[Double] based collection for a sequence of CurveSegs, similar to a Polygon which is an Array[Double based collection of just LineSegs. It Uses 6 Doubles for each CurveSeg. The first Double of each curveSeg is set to Negative Infinity for a LineSeg positive infinity for an ArcSeg, but represents the x component of the first control point for a BezierSeg.

Companion
object

A shape based graphic.

A shape based graphic.

Companion
object

Companion object for the ShapeGraphic class.

Companion object for the ShapeGraphic class.

Companion
class

A ShapeGraphic based on a Shape with a defined centre.

A ShapeGraphic based on a Shape with a defined centre.

A Shape based graphic where the Ordinal edge points, the cardinal edge points and the centre are defined. This includes Rects, Circles, aligned ellipses and curved Rects. There is no type class for this capability as one s unlikely to want to move a collection of graphics to the same point.

A Shape based graphic where the Ordinal edge points, the cardinal edge points and the centre are defined. This includes Rects, Circles, aligned ellipses and curved Rects. There is no type class for this capability as one s unlikely to want to move a collection of graphics to the same point.

trait ShapeIcon

A Shape where the Ordinal edge points, the cardinal edge points and the centre are defined. This includes Rects, Circles, aligned ellipses and curved Rects.

A Shape where the Ordinal edge points, the cardinal edge points and the centre are defined. This includes Rects, Circles, aligned ellipses and curved Rects.

trait Shear[T]

Type class for shear transformations. just starting with the basic shears, rather than a generalised shear transformation.

Type class for shear transformations. just starting with the basic shears, rather than a generalised shear transformation.

Companion
object
object Shear

Companion object for the Shear type class. Contains implicit instances for common types.

Companion object for the Shear type class. Contains implicit instances for common types.

Companion
class
class ShearExtensions[T](obj: T, ev: Shear[T])

Extensions class for the Shear type class.

Extensions class for the Shear type class.

A trait that preserves one type through all the similar 2D geometrical transformations and preserves a second type ThisT2 through the other affine transformations.

A trait that preserves one type through all the similar 2D geometrical transformations and preserves a second type ThisT2 through the other affine transformations.

All leaf classes of this type that will preserve their types for all the Similar 2D geometrical transformations.

All leaf classes of this type that will preserve their types for all the Similar 2D geometrical transformations.

trait Slate[T]

Type class for translate 2 dimensional vector transformations. Each transformation method has been given its own Type class and associated extension class. Different sets of transformations can then be combined.

Type class for translate 2 dimensional vector transformations. Each transformation method has been given its own Type class and associated extension class. Different sets of transformations can then be combined.

Companion
object
object Slate

Companion object for the Slate type class. Contains implicit instances for collections and other container classes.

Companion object for the Slate type class. Contains implicit instances for collections and other container classes.

Companion
class
class SlateExtensions[T](value: T, ev: Slate[T])

Extension class for instances of the Slate type class.

Extension class for instances of the Slate type class.

class SlateTransAxesExtensions[A](thisReflector: A)(implicit evS: Slate[A], evR: TransAxes[A])

An extensions class for types providing instances of the Slate translate and TransAxes geometric transformation type classes.

An extensions class for types providing instances of the Slate translate and TransAxes geometric transformation type classes.

case
class SqCenlign(width: Double)

Not sure about this class.

Not sure about this class.

final case
class Sqlign extends Square with Rect with Show2[Double, Pt2]

A square aligned to the X and Y axes.

A square aligned to the X and Y axes.

Companion
object
object Sqlign

Companion object for Sqlign class, a square aligned to the X and Y axes. Contains factory apply methods.

Companion object for Sqlign class, a square aligned to the X and Y axes. Contains factory apply methods.

Companion
class
trait Square extends Rectangle

the Square trait can either be a Sqlign, an aligned square or a SquareImp, a general square.

the Square trait can either be a Sqlign, an aligned square or a SquareImp, a general square.

Companion
object
object Square extends ShapeIcon

Companion object for the Square trait. However its apply methods delegate to the SquareImp implementation class.

Companion object for the Square trait. However its apply methods delegate to the SquareImp implementation class.

Companion
class
object Star3
object Star5
object Star7
implicit
class StringImplictGeom(thisString: String)
case
class StrokeAttrib(colour: Colour) extends XmlAtt
case
class StrokeWidthAttrib(lineWidth: Double) extends XmlAtt
case
class SvgCircle(attribs: Arr[XmlAtt], contents: Arr[XCon]) extends SvgElem
trait SvgElem extends XmlElem

An SVG element.

An SVG element.

case
class SvgEllipse(attribs: Arr[XmlAtt], contents: Arr[XCon]) extends SvgElem
case
class SvgPolygon(attribs: Arr[XmlAtt], contents: Arr[XCon]) extends SvgElem
case
class SvgRect(attribs: Arr[XmlAtt], contents: Arr[XCon]) extends SvgElem
case
class SvgRotate(degrees: Double, x: Double, y: Double) extends XmlAtt
case
class SvgSvgElem(contents: Arr[XCon], attribs: Arr[XmlAtt]) extends SvgElem
Companion
object
object SvgSvgElem
Companion
class
sealed
trait TextAlign
case
class TextBox(textStr: String) extends TextCell

Implementation class for TextCell.

Implementation class for TextCell.

trait TextCell

A text cell is text in box, whose scaling is determined at display time. It will normally be displayed in some kind of command bar or table structure.

A text cell is text in box, whose scaling is determined at display time. It will normally be displayed in some kind of command bar or table structure.

Companion
object
object TextCell
Companion
class
case
class TextCtrl(textStr: String, action: MouseButton => Unit) extends TextCell

A graphical control, whose scaling is determined at display time. It will that will normally be displayed in some kind of command bar or table structure.

A graphical control, whose scaling is determined at display time. It will that will normally be displayed in some kind of command bar or table structure.

case
class TextFacet(str: String, colour: Colour) extends GraphicFacet
case
class TextGraphic(str: String, fontSize: Double, xPosn: Double, yPosn: Double, colour: Colour, align: TextAlign, baseLine: BaseLine) extends GraphicAffineElem with CanvElem

A Graphical display of Text.

A Graphical display of Text.

Value Params
posn

The point to orient from. By default this Vec2 defines the centre but from right or left depending on alignment.

Companion
object
Companion
class
class TextOutline(val str: String, val fontSize: Double, val x: Double, val y: Double, val colour: Colour, val lineWidth: Double, val align: TextAlign, val baseLine: BaseLine) extends GraphicAffineElem
Companion
object
Companion
class
trait TextRect extends TextCell
trait TransAffDist[T] extends TransSimDist[T]

AffDistine Transformation

AffDistine Transformation

Companion
object
Companion
class
class TransAffDistExtension[T](value: T, ev: TransAffDist[T])
trait TransAlign[T]

A transformation type class allowing only translations and scaling, in order to maintain the alignment of the graphical objects.

A transformation type class allowing only translations and scaling, in order to maintain the alignment of the graphical objects.

Companion
object
object TransAlign

Companion object for the TransAlign type class. Contains instances for various container classes.

Companion object for the TransAlign type class. Contains instances for various container classes.

Companion
class
class TransAlignDistExtension[T](value: T, ev: TransRigidDist[T])
trait TransAllDist[T]

The typeclass trait for transforming an object in 2d geometry.

The typeclass trait for transforming an object in 2d geometry.

Companion
object

The companion object for the TransDist typeclass, containing instances for common classes.

The companion object for the TransDist typeclass, containing instances for common classes.

Companion
class

The object can be transformed in 2 dimensional Distance space. Leaf classes must implement the single method fTrans(f: Dist2 => Dist2): T The related trait TranExtension does the same for trans(f: Vec2 => Vec2): T.

The object can be transformed in 2 dimensional Distance space. Leaf classes must implement the single method fTrans(f: Dist2 => Dist2): T The related trait TranExtension does the same for trans(f: Vec2 => Vec2): T.

trait TransAxes[T]

Reflect Axis type class. It has two methods to reflect across the X and the Y axes. This has been created as a separate typeclass to TransAxes, as these transformations may preserve types that ReflectAxisOffset's transformations can not.

Reflect Axis type class. It has two methods to reflect across the X and the Y axes. This has been created as a separate typeclass to TransAxes, as these transformations may preserve types that ReflectAxisOffset's transformations can not.

Companion
object
object TransAxes

Companion object for the TransAxes typeclass trait, contains instances for common container objects including Functor instances.

Companion object for the TransAxes typeclass trait, contains instances for common container objects including Functor instances.

Companion
class
class TransAxesExtensions[T](thisT: T)(implicit ev: TransAxes[T])

Class to provide extension methods for TransAxes type class.

Class to provide extension methods for TransAxes type class.

class TransAxesSlateExtensions[T](thisT: T)(implicit evR: TransAxes[T], evS: Slate[T])

Extension class for types that fulfill the type class interface for TransAxes and Slate.

Extension class for types that fulfill the type class interface for TransAxes and Slate.

Trait for objects that can be transformed in 2 dimensional distance space.

Trait for objects that can be transformed in 2 dimensional distance space.

Companion
object

The companion object for Transer.

The companion object for Transer.

Companion
class

A Rigid or Euclidean transformations type class.

A Rigid or Euclidean transformations type class.

Companion
object
Companion
class
trait TransSim[T] extends TransAlign[T]

A Similar Transformations type class

A Similar Transformations type class

Companion
object
object TransSim

Companion object for the TranSim transformation type class trait.

Companion object for the TranSim transformation type class trait.

Companion
class
trait TransSimDist[T] extends TransRigidDist[T]

A Similar Transformations type class for Dist2 distance 2 dimensional vectors.

A Similar Transformations type class for Dist2 distance 2 dimensional vectors.

Companion
object
Companion
class
class TransSimDistExtension[T](value: T, ev: TransSimDist[T]) extends RotateGenExtensions[T]
class TransSimExtension[T](value: T, ev: TransSim[T])
object Trapezium

Probably worth keeping

Probably worth keeping

trait Triangle extends Polygon3Plus

A mathematical triangle. The Triangle trait is implemented for its general case by Triangle.TriangleImp.

A mathematical triangle. The Triangle trait is implemented for its general case by Triangle.TriangleImp.

Companion
object
object Triangle
Companion
class
final case
class TriangleEqui(v1x: Double, v1y: Double, v3x: Double, v3y: Double) extends TriangleIsos with AxisFree

Equilateral triangle. will become a trait.

Equilateral triangle. will become a trait.

case
trait TriangleIsos extends Triangle

An isosceles triangle. This trait is implemented by the equilateral triangle, TriangleEqui and the general case TriangleIsos.

An isosceles triangle. This trait is implemented by the equilateral triangle, TriangleEqui and the general case TriangleIsos.

final case
class TriangleIsosGen(v1x: Double, v1y: Double, v3x: Double, v3y: Double, height: Double) extends TriangleIsos with AxisFree

The general case of an isosceles triangle.

The general case of an isosceles triangle.

This is not a Polygon but should fTrans to Polygon.

This is not a Polygon but should fTrans to Polygon.

case
object UnknownButton extends MouseButton

Indicates the mouse button is unknown.

Indicates the mouse button is unknown.

trait Val1Vec2s[Val1T] extends ValsVec2s
trait Val2Vec2s[Val1T, Val2T] extends ValsVec2s
trait Val3Vec2s[Val1T, Val2T, Val3T] extends ValsVec2s
trait ValsVec2s

Not sure how useful these classes are in the immediate as when used in a collection they will box, undermining the benefits of using an Array

Not sure how useful these classes are in the immediate as when used in a collection they will box, undermining the benefits of using an Array

class Vec2(val x: Double, val y: Double) extends Vec2Like with ApproxDbl

A 2 dimensional vector. This is similar data to Pt2. The purpose of this separate type is to encode the relative nature of the Vec2 as opposed to the absolute nature of a Pt. So usually you will want and need to add the vector to an absolute point to return to the absolute realm of points. Thanks to René Descartes for this great idea.

A 2 dimensional vector. This is similar data to Pt2. The purpose of this separate type is to encode the relative nature of the Vec2 as opposed to the absolute nature of a Pt. So usually you will want and need to add the vector to an absolute point to return to the absolute realm of points. Thanks to René Descartes for this great idea.

Companion
object
object Vec2

Companion object for Vec2 contains apply factory method and unapply method.

Companion object for Vec2 contains apply factory method and unapply method.

Companion
class
trait Vec2Like extends Show2Dbls with ApproxDbl

A common trait for Vec2 and Pt2 it would be good if the methods on this trait could be reduced.

A common trait for Vec2 and Pt2 it would be good if the methods on this trait could be reduced.

final
class Vec2M(val xMetresNum: Double, val yMetresNum: Double) extends length2M

A 2 dimensional vector specified in metres as units rather than pure scalar numbers.

A 2 dimensional vector specified in metres as units rather than pure scalar numbers.

Companion
object
object Vec2M
Companion
class
class Vec2MArr(val arrayUnsafe: Array[Double]) extends ArrDbl2s[Vec2M]
final
class Vec2MBuff(val unsafeBuff: ArrayBuffer[Double]) extends AnyVal with BuffDbl2s[Vec2M]

A specialised flat ArrayBuffer[Double] based class for Pt2s collections.

A specialised flat ArrayBuffer[Double] based class for Pt2s collections.

final
class Vec3(val x: Double, val y: Double, val z: Double) extends Vec3Like

A 3 dimensional vector. This is similar data to Pt3. The purpose of this separate type is to encode the relative nature of the Vec3 as opposed to the absolute nature of a point. So usually you will want and need to add the vector to an absolute point to return to the absolute realm of points. Thanks to René Descartes for this great idea.

A 3 dimensional vector. This is similar data to Pt3. The purpose of this separate type is to encode the relative nature of the Vec3 as opposed to the absolute nature of a point. So usually you will want and need to add the vector to an absolute point to return to the absolute realm of points. Thanks to René Descartes for this great idea.

Companion
object
object Vec3

Companion object for 3 dimensional vector Vec3 class. Conatains apply facotry method, unapply method and Persist type class instance.

Companion object for 3 dimensional vector Vec3 class. Conatains apply facotry method, unapply method and Persist type class instance.

Companion
class
trait Vec3Like extends Show3Dbls with ApproxDbl

A common trait for Vec3 and Pt3. Don't know if this will be useful after refactoring.

A common trait for Vec3 and Pt3. Don't know if this will be useful after refactoring.

case
class ViewBox(minX: Double, minY: Double, width: Double, height: Double) extends XmlAtt

SVG ViewBox.

SVG ViewBox.

case
class WidthAtt(value: Double) extends XANumeric

XML attribute ofr width.

XML attribute ofr width.

An object with a 2 dimensional scar centre. The centre is a Pt2. It has the Double properties cenX and CenY

An object with a 2 dimensional scar centre. The centre is a Pt2. It has the Double properties cenX and CenY

case
class XAttrib(value: Double) extends XANumeric

XML attribute for x posn.

XML attribute for x posn.

object XAxis extends XParallel with XorYAxis

The X Axis in 2 dimensional space.

The X Axis in 2 dimensional space.

sealed case
class XLine(yFactor: Double, offset: Double) extends Line

An infinite length 2 dimensional straight line defined in terms of its Y value and and an offset. It is defined for all values of X, but not for all values of x if the xFactor is 0.

An infinite length 2 dimensional straight line defined in terms of its Y value and and an offset. It is defined for all values of X, but not for all values of x if the xFactor is 0.

sealed
class XParallel(offset: Double) extends XLine

An infinite length 2 dimensional straight line that is parrael to the X Axis. It is defined for all values of X, but for only 1 value of Y.

An infinite length 2 dimensional straight line that is parrael to the X Axis. It is defined for all values of X, but for only 1 value of Y.

class XYScaleExtensions[T](val value: T, ev: ScaleXY[T])
sealed
trait XorYAxis extends Line
case
class YAttrib(value: Double) extends XANumeric

XML attribute for y posn.

XML attribute for y posn.

object YAxis extends XParallel with XorYAxis

The Y Axis in 2 dimensional space.

The Y Axis in 2 dimensional space.

sealed case
class YLine(xFactor: Double, offset: Double) extends Line

An infinite length 2 dimensional straight line defined in terms of its X value and and an offset. It is defined for all values of Y, but not for all values of x if the xFactor is 0.

An infinite length 2 dimensional straight line defined in terms of its X value and and an offset. It is defined for all values of Y, but not for all values of x if the xFactor is 0.

sealed
class YParallel(offset: Double) extends YLine

An infinite length 2 dimensional straight line that is parallel to the X Axis. It is defined for all values of Y, but for only 1 value of X.

An infinite length 2 dimensional straight line that is parallel to the X Axis. It is defined for all values of Y, but for only 1 value of X.

trait length2M extends Show2Dbls

Value members

Concrete methods

def displayRowGraphics(leftPt: Pt2, actives: Arr[GraphicBounded], margin: Double): Arr[GraphicBounded]
def displayRowTexts(leftPt: Pt2, textCells: Arr[TextCell], fontSize: Double, margin: Double): Arr[BoundedElem]
def xVec2(x: Double): Vec2

A Vec2 along the X Axis, whose Y component = 0.

A Vec2 along the X Axis, whose Y component = 0.

def yVec2(y: Double): Vec2

A Vec2 along the Y Axis, whose X component = 0.

A Vec2 along the Y Axis, whose X component = 0.

Concrete fields

val Ang0: Angle

An absolute angle of 0 degrees or 0 radians.

An absolute angle of 0 degrees or 0 radians.

An absolute angle of 120 degrees or 2 Pi/3 radians.

An absolute angle of 120 degrees or 2 Pi/3 radians.

An absolute angle of 150 degrees or 5 Pi/6 radians.

An absolute angle of 150 degrees or 5 Pi/6 radians.

An absolute angle of 240 degrees or 4 Pi/3 radians.

An absolute angle of 240 degrees or 4 Pi/3 radians.

An absolute angle of 30 degrees or Pi/6 radians.

An absolute angle of 30 degrees or Pi/6 radians.

An absolute angle of 300 degrees or 5 Pi/3 radians.

An absolute angle of 300 degrees or 5 Pi/3 radians.

An absolute angle of 315 degrees or 7 Pi/4 radians.

An absolute angle of 315 degrees or 7 Pi/4 radians.

An absolute angle of 330 degrees or 11 Pi/6 radians.

An absolute angle of 330 degrees or 11 Pi/6 radians.

An absolute angle of 45 degrees or Pi/4 radians.

An absolute angle of 45 degrees or Pi/4 radians.

An absolute angle of 60 degrees or Pi/3 radians.

An absolute angle of 60 degrees or Pi/3 radians.

90 degrees anti-clockwise or + Pi/2 radians

90 degrees anti-clockwise or + Pi/2 radians

val Cos30: Double
val Cos60: Double

0 degrees or 0 radians

0 degrees or 0 radians

120 degrees anti-clockwise or + 2 * Pi/3 radians

120 degrees anti-clockwise or + 2 * Pi/3 radians

135 degrees anti-clockwise or + 3 * Pi/4 radians

135 degrees anti-clockwise or + 3 * Pi/4 radians

15 degrees anti-clockwise or + Pi/12 radians

15 degrees anti-clockwise or + Pi/12 radians

150 degrees anti-clockwise or + 5 * Pi/6 radians

150 degrees anti-clockwise or + 5 * Pi/6 radians

180 degrees or Pi radians

180 degrees or Pi radians

210 degrees or Pi radians

210 degrees or Pi radians

240 degrees or Pi radians

240 degrees or Pi radians

25 degrees anti-clockwise or +25 degrees.

25 degrees anti-clockwise or +25 degrees.

270 degrees or Pi radians

270 degrees or Pi radians

30 degrees anti-clockwise or + Pi/6 radians

30 degrees anti-clockwise or + Pi/6 radians

300 degrees or Pi radians

300 degrees or Pi radians

36 degrees anti-clockwise or + Pi/5 radians

36 degrees anti-clockwise or + Pi/5 radians

45 degrees anti-clockwise or + Pi/4 radians

45 degrees anti-clockwise or + Pi/4 radians

60 degrees anti-clockwise or + Pi/3 radians

60 degrees anti-clockwise or + Pi/3 radians

72 degrees anti-clockwise or + Pi2/5 radians

72 degrees anti-clockwise or + Pi2/5 radians

90 degrees anti-clockwise or + Pi/2 radians

90 degrees anti-clockwise or + Pi/2 radians

Dist2(0.km, 0.km) constant

Dist2(0.km, 0.km) constant

The number of thousands of a second, 3600000 in a degree.

The number of thousands of a second, 3600000 in a degree.

val MilliSecsInRadian: Double
val Phi: Double
val Pt2Z: Pt2

The origin, the intersection of the axes for 2 dimensional vectors.

The origin, the intersection of the axes for 2 dimensional vectors.

val SecsIn180Degs: Int
val SecsIn360Degs: Int
val SecsIn90Degs: Int
val SecsInDeg: Int

The number of seconds, 3600 in a degree.

The number of seconds, 3600 in a degree.

val SecsInRadian: Double
val Sin15: Double
val Sin30: Double
val Sin60: Double

Implicits

Implicits

final implicit
def AnyGeomImplicit(thisAny: Any): AnyGeomImplicit
final implicit
final implicit
final implicit
final implicit
def OptionGeomImplicit[A](thisOption: Option[A]): OptionGeomImplicit[A]
implicit
def OrdinaledElemToExtensions[T <: OrdinaledElem](value: T)(implicit ev: Slate[T]): OrdinaledExtensions[T]
final implicit
def ProlignMatrixExtension[T](value: T)(implicit ev: Prolign[T]): ProlignMatrixExtension[T]
final implicit
def StringImplictGeom(thisString: String): StringImplictGeom
implicit
implicit
implicit
def doubleToImplicitGeom(thisDouble: Double): DoubleImplicitGeom
implicit
implicit
def reflectToExtension[T](value: T)(implicit ev: Reflect[T]): ReflectExtensions[T]
implicit
def rotateToExtensions[T, T1 <: T](value: T1)(implicit ev: Rotate[T]): RotateExtensions[T]
implicit
def scaleToExtensions[T](value: T)(implicit ev: Scale[T]): ScaleExtensions[T]
implicit
def shearToExtensions[T](value: T)(implicit ev: Shear[T]): ShearExtensions[T]
implicit
def slateToExtensions[T](value: T)(implicit ev: Slate[T]): SlateExtensions[T]
implicit
def slateTransAxesToExtension[T](value: T)(implicit evS: Slate[T], evR: TransAxes[T]): SlateTransAxesExtensions[T]
implicit
def transAxesSlateToExtensions[T](value: T)(implicit evR: TransAxes[T], evS: Slate[T]): TransAxesSlateExtensions[T]
implicit
def transAxesToExtensions[T](value: T)(implicit ev: TransAxes[T]): TransAxesExtensions[T]
implicit
def transSimToExtension[T](value: T)(implicit ev: TransSim[T]): TransSimExtension[T]
implicit
def xyScaleToExtensions[T](value: T)(implicit ev: ScaleXY[T]): XYScaleExtensions[T]