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
object AffineTrans

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 Dbl1Elem

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 Dbl1Elem

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 to complete anti-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 to complete anti-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 Dbl1sArr[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
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.

class ArrLikeBaseExtensions[A](val al: ArrayLikeBase[A])
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 trait BoundingOpt
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.

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 pCanv.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 pCanv.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
trait CentredElem extends BoundedElem with WithCentre

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 Dbl7sArr[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 Dbl7Elem 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

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 Dbl7Elem 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 DistImplicit(thisDist: Metres)
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
object EllipseDraw
Companion
class

A simple single colour fill of a circle graphic.

A simple single colour fill of a circle graphic.

Companion
object
object EllipseFill

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
object Ellipselign
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
object GraphicElem

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.

trait GraphicSimple extends GraphicElem

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 Dbl3Elem

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.

final class LatLong extends LatLongBase with Show2Dbls

A value of latitude and longitude stored for the earth, stored in arc seconds. The constructor is private as instances will rarely be constructed from arc second values. "ll" and "LL" will be used as an abbreviation for LatLong in method names.

A value of latitude and longitude stored for the earth, stored in arc seconds. The constructor is private as instances will rarely be constructed from arc second values. "ll" and "LL" will be used as an abbreviation for LatLong in method names.

Companion
object
object LatLong

Companion object for the LatLong class. Contains factory methods for the creation of LatLong s.

Companion object for the LatLong class. Contains factory methods for the creation of LatLong s.

Companion
class

The purpose of this trait is to provide super trait for surface positions on all Spheroids.

The purpose of this trait is to provide super trait for surface positions on all Spheroids.

final class LatLongs(val arrayUnsafe: Array[Double]) extends AnyVal with LatLongsLike

Immutable flat efficient Array[Double] based collection class for LatLongs. Prefer PolygonLL or LineSegLL where applicable.

Immutable flat efficient Array[Double] based collection class for LatLongs. Prefer PolygonLL or LineSegLL where applicable.

trait LatLongsLike extends Dbl2sArr[LatLong]

A base trait for a sequence of LatLongs. The final classes are more strongly typed as a [[LinePathLL], a PolygonLLand LatLongs, for a a general collection of LatLong points.

A base trait for a sequence of LatLongs. The final classes are more strongly typed as a [[LinePathLL], a PolygonLLand LatLongs, for a a general collection of LatLong points.

final class Latitude extends AnyVal with AngleLike

A compile time wrapper class for Latitude. The value is stored in arc seconds.

A compile time wrapper class for Latitude. The value is stored in arc seconds.

Companion
object
object Latitude

Companion object for the Latitude class.

Companion object for the Latitude class.

Companion
class
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 buffer: ArrayBuffer[Double]) extends AnyVal with Dbl4sBuffer[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 Dbl2sArr[Pt2] with AffinePreserve with Vec2sLikeProdDbl2

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
case class LinePathDraw(path: LinePath, lineWidth: Double, colour: Colour) extends GraphicAffineElem with CanvElem
final class LinePathLL(val arrayUnsafe: Array[Double]) extends AnyVal with LatLongsLike

A latitude-longitude line path. A quasi line path where the points are stored as points of latitude and longitude.Once the points are converted into a view, ie into pixel positions an actual polygon can be drawn or filled as desired. Do not create line paths that span an arc of greater than 90 degrees as this may break the algorithms.

A latitude-longitude line path. A quasi line path where the points are stored as points of latitude and longitude.Once the points are converted into a view, ie into pixel positions an actual polygon can be drawn or filled as desired. Do not create line paths that span an arc of greater than 90 degrees as this may break the algorithms.

Companion
object
final class LineSeg(val startX: Double, val startY: Double, val endX: Double, val endY: Double) extends LineLike with CurveSeg with Show2[Pt2, Pt2] with Dbl4Elem 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 Dbl6Elem

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
class LineSegDist(xStartMetres: Double, yStartMetres: Double, xEndMetres: Double, yEndMetres: Double)

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

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

Companion
object
object LineSegDist
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
object LineSegDraw
Companion
class
final case class LineSegLL

A 2 dimensional line segment defined in units of latitude and longitude rather than scalars in X and Y. A line on the service of the earth.

A 2 dimensional line segment defined in units of latitude and longitude rather than scalars in X and Y. A line on the service of the earth.

Companion
object
object LineSegLL

Companion object for the LineSegLL class.

Companion object for the LineSegLL class.

Companion
class
class LineSegM3(xStartMs: Double, yStartMs: Double, zStartMs: Double, xEndMs: Double, yEndMs: Double, zEndMs: Double) extends Dbl6Elem

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
object LineSegM3

Companion object for LineSegM3 trait contains apply factory method.

Companion object for LineSegM3 trait contains apply factory method.

Companion
class
class LineSegs(val arrayUnsafe: Array[Double]) extends Dbl4sArr[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
final class Longitude extends AnyVal with AngleLike

The Longitude class is a compile time wrapper around a Double. The longitude value is stored in arc seconds,to allow precise storage of values specified in the old Degrees, Minutes and Seconds system. Decimals of a degree can also be stored precisely.

The Longitude class is a compile time wrapper around a Double. The longitude value is stored in arc seconds,to allow precise storage of values specified in the old Degrees, Minutes and Seconds system. Decimals of a degree can also be stored precisely.

Companion
object
object Longitude

Companion object of the Longitude class.

Companion object of the Longitude class.

Companion
class
case object MiddleButton extends MouseButton

Indicates the middel mouse button was pressed.

Indicates the middel mouse button was pressed.

sealed class MouseButton

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 object MultipleButton extends MouseButton

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.

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
object PhiRectangle

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 PolyCurveAll(shape: ShapeGenOld, pointerId: Any, 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: Any, 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 PolygonImp, 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 PolygonImp, 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.

trait Polygon4Plus extends Polygon3Plus

A Polygon with at least 4 vertices.

A Polygon with at least 4 vertices.

trait Polygon5Plus extends Polygon4Plus

A Polygon with at least 5 vertices.

A Polygon with at least 5 vertices.

trait Polygon6Plus extends Polygon5Plus

A Polygon with at least 6 vertices.

A Polygon with at least 6 vertices.

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

A pointable polygon without visual.

A pointable polygon without visual.

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

Immutable Graphic element that defines and draws a Polygon.

Immutable Graphic element that defines and draws a Polygon.

Companion
object
object PolygonDraw
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
object PolygonFill

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

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
final class PolygonImp(val arrayUnsafe: Array[Double]) extends Polygon with Vec2sLikeProdDbl2 with AffinePreserve

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 PolygonImp.

Companion object for PolygonImp.

Companion
class
final class PolygonKMs(val arrayUnsafe: Array[Double]) extends AnyVal
final class PolygonLL(val arrayUnsafe: Array[Double]) extends AnyVal with LatLongsLike

A latitude-longitude polygon. A quasi polygon where the points are stored as points of latitude and longitude.Once the points are converted into a view, ie into pixel positions an actual polygon can be drawn or filled as desired. Do not create Polygons that span an arc of greater than 90 degrees as this may break the algorithms. preferably keep the arcs significantly smaller.

A latitude-longitude polygon. A quasi polygon where the points are stored as points of latitude and longitude.Once the points are converted into a view, ie into pixel positions an actual polygon can be drawn or filled as desired. Do not create Polygons that span an arc of greater than 90 degrees as this may break the algorithms. preferably keep the arcs significantly smaller.

Companion
object

Companion object for the PolygonLL class.

Companion object for the PolygonLL class.

Companion
class
trait PolygonLike[VertT]
final class PolygonM(val arrayUnsafe: Array[Double]) extends AnyVal with Dbl2sArr[Pt2M]
Companion
object

The companion object for PolygonDist. Provides an implicit builder.

The companion object for PolygonDist. Provides an implicit builder.

Companion
class
final class PolygonM3(val arrayUnsafe: Array[Double]) extends AnyVal with Dbl3sArr[Pt3M]

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 PolygonMs 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 PolygonMs on world maps.

Companion
object

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

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

Companion
class
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
class ProlignMatrixExtension[T](val value: T)(implicit ev: Prolign[T])
trait ProlignPreserve extends GeomElem

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 Pt2Buff(val buffer: ArrayBuffer[Double]) extends AnyVal with Dbl2sBuffer[Pt2]

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

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

final class Pt2M(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 Pt2M

Companion object for Pt2M class contains factory methods.

Companion object for Pt2M class contains factory methods.

Companion
class
final class Pt2MArr(val arrayUnsafe: Array[Double]) extends AnyVal with Dbl2sArr[Pt2M]

Specialised immutable Array based collection class for Pt2Ms.

Specialised immutable Array based collection class for Pt2Ms.

Companion
object

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

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

Companion
class
final class Pt2s(val arrayUnsafe: Array[Double]) extends AffinePreserve with Vec2sLikeProdDbl2 with Dbl2sArr[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 Dbl2sArrCompanion[Pt2, Pt2s]
Companion
class
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 buffer: ArrayBuffer[Double]) extends AnyVal with Dbl3sBuffer[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 Pt3M(val xMetres: Double, val yMetres: Double, val zMetres: Double) extends Dbl3Elem

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 Pt3M

Companion object for the Metres3 class.

Companion object for the Metres3 class.

Companion
class
final class Pt3MArr(val arrayUnsafe: Array[Double]) extends AnyVal with Dbl3sArr[Pt3M]

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

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

Companion
object
Companion
class
final class Pt3MBuff(val buffer: ArrayBuffer[Double]) extends AnyVal with Dbl3sBuffer[Pt3M]

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

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

final class Pt3s(val arrayUnsafe: Array[Double]) extends AnyVal with Dbl3sArr[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.

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
trait Rect extends Rectangle with Rectangularlign with ShapeOrdinaled

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
object RectCompound

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.

trait Rectangle extends ShapeCentred with Polygon4Plus

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 Dbl7sArr[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
object ShapeGraphic

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
trait ShapeOrdinaled extends Shape with OrdinaledElem

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
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
object TextGraphic
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
object TextOutline
Companion
class
trait TextRect extends TextCell
trait TransAffDist[T] extends TransSimDist[T]

AffDistine Transformation

AffDistine Transformation

Companion
object
object TransAffDist
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
object TransAllDist

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
object TransDister

The companion object for Transer.

The companion object for Transer.

Companion
class
trait TransRigidDist[T]

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
object TransSimDist
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 class TriangleFill(shape: Triangle, fill: FillFacet) extends TriangleGraphicSimple with PolygonFill
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 extends Show2Dbls

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.

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 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.

trait WithCentre

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.

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.

val Ang30: Angle

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.

val Ang45: Angle

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

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

val Ang60: Angle

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

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

val Ang90: Angle

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

val Dist2Z: Pt2M

Dist2(0.km, 0.km) constant

Dist2(0.km, 0.km) constant

val MilliSecsInDeg: Int

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

implicit def OrdinaledElemToExtensions[T <: OrdinaledElem](value: T)(implicit ev: Slate[T]): OrdinaledExtensions[T]
implicit def boundedToExtensions[T <: BoundedElem](value: T): BoundedExtensions[T]
implicit def doubleToImplicitGeom(thisDouble: Double): DoubleImplicitGeom
implicit def intToImplicitGeom(thisInt: Int): IntGeomImplicit
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]