ostrat.geom

package ostrat.geom

The package name has been chosen to avoid clashing with "geometry" that may be use in other libraries This package contains geometry vectors and graphics. Of particular note are the Pt2, GeomElem and GraphicElem class /traits. These are the foundation of the API and the library. A number of implementation Value classes of the Int and Double product classes defined in ostrat. 2d graphical objects for generalised use. They are of particular use for the generic canvas based classes defined in pCanv but can be used in any display framework and for printing.

Type members

Classlikes

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

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

trait AffineTrans[T] extends TransSim[T]

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

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

Companion:
object

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

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

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

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

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

Companion:
object
object Angle

Angle Companion object.

Angle Companion object.

Companion:
class
trait AngleLike extends ShowDec with ApproxAngle with ElemDbl1

Base trait for Angle, AngleVec, Latitude and Longitude.

Base trait for Angle, AngleVec, Latitude and Longitude.

class AngleVec extends AngleLike

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

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

Companion:
object
object AngleVec

Companion object for AngleVec trait contains factory methods.

Companion object for AngleVec trait contains factory methods.

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

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

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

Companion:
object
object Angles

Companion object for Angles class.

Companion object for Angles class.

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

To be removed.

To be removed.

object ArcTail

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

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

object Arrow

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

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

trait AxisFree extends GeomElem

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

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

case object BackButton extends MouseButton

Indicates the back mouse button was pressed.

Indicates the back mouse button was pressed.

sealed trait BaseLine

Baseline style for text.

Baseline style for text.

Companion:
object
object BaseLine

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

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

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

Cubic bezier curve.

Cubic bezier curve.

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

Functional class for Drawing a cubic Bezier curve.

Functional class for Drawing a cubic Bezier curve.

Companion:
object
object BezierDraw

Companion object for the BezierDraw class.

Companion object for the BezierDraw class.

Companion:
class
object BezierTail

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

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

trait BoundedElem extends GeomElem

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

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

final class BoundedExtensions[T <: BoundedElem](val thisT: T) extends AnyVal
object BoundingNone extends BoundingOpt
sealed 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.

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

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

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

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

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

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

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

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

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

Companion:
object
Companion:
class
class CArc extends EArclign

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

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

Companion:
object
object CArc

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

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

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

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

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

Companion:
object
object CanvElem

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

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

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

ShapeFill element that is a CanvElem

ShapeFill element that is a CanvElem

case object CenAlign extends TextAlign

A 2D geometric element with a defined centre.

A 2D geometric element with a defined centre.

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

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

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

Companion:
object
object Circle extends ShapeIcon

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

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

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

Compound Circle Graphic class.

Compound Circle Graphic class.

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

A simple draw of a circle graphic.

A simple draw of a circle graphic.

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

A simple single colour fill of a circle graphic.

A simple single colour fill of a circle graphic.

case class CircleFillIcon(fillColour: Colour) extends ShapeFillIcon

A circle based Graphic, may be simple or compound.

A circle based Graphic, may be simple or compound.

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

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

object Cross

This just a temporary start.

This just a temporary start.

trait CurveFacet extends GraphicFacet
trait CurveSeg extends Drawable

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

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

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

This class needs replacing.

This class needs replacing.

Companion:
object

Graphic based on a CurveSeg.

Graphic based on a CurveSeg.

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

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

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

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

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

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

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

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

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

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

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

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

class DoubleImplicitGeom(thisDouble: Double)

Extension methods class for Double, for the geom package.

Extension methods class for Double, for the geom package.

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

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

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

Companion:
object
object Drawable

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

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

Companion:
class
trait EArc extends EllipseBased with CurveSeg

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

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

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

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

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

Companion:
object
object EArcDraw

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

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

Companion:
class
trait EArclign extends EArc

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

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

Companion:
object
object EArclign

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

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

Companion:
class
trait Ellipse extends EllipseBased with ShapeCentred

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

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

Companion:
object
object Ellipse

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

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

Companion:
class
trait EllipseBased extends GeomElem with WithCentre

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

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

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

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

Companion:
object

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

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

Companion:
class
Companion:
object
Companion:
class

A simple single colour fill of a circle graphic.

A simple single colour fill of a circle graphic.

Companion:
object

Companion object for the EllipseFill class.

Companion object for the EllipseFill class.

Companion:
class

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

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

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

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

trait Ellipselign extends Ellipse

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

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

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

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

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

trait Fillable extends Drawable

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

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

case object ForwardButton extends MouseButton

Indicates the forward mouse button was pressed.

Indicates the forward mouse button was pressed.

trait GeomElem

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

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

Companion:
object
object GeomElem

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

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

Companion:
class

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

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

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

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

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

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

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

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

Companion:
object

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

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

Companion:
class

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

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

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

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

This is the new active trait that will replace GraphicActive.

This is the new active trait that will replace GraphicActive.

trait GraphicElem extends GeomElem

This will be sealed 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. So I think the self type will force all GraphicElems to extend CanvElem or NoCanvElem.

This will be sealed 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. So I think the self type will force all GraphicElems to extend CanvElem or NoCanvElem.

Companion:
object

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

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

Companion:
class

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

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

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

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

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

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

Companion:
object

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

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

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

XML attribute for height.

XML attribute for height.

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

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

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

Companion:
object
object HexParrX

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

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

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

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

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

Companion:
object
object HexParrY

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

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

Companion:
class
trait HexReg extends ShapeCentred with Polygon6Plus with ShowDec

Regular Hexagon

Regular Hexagon

Companion:
object
object HexReg

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

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

Companion:
class
trait Hexlign extends HexReg

A regular Hexagon aligned to the X and Y axes.

A regular Hexagon aligned to the X and Y axes.

class IntGeomImplicit(thisInt: Int)

Extension methods class for Int, for the geom package.

Extension methods class for Int, for the geom package.

case object LeftAlign extends TextAlign
case object LeftButton extends MouseButton

Indicates the left mouse button was pressed.

Indicates the left mouse button was pressed.

sealed trait Line extends LineLike

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

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

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

Efficient expandable buffer for Line2s.

Efficient expandable buffer for Line2s.

trait LineLike extends GeomElem

Common base trait for Line, LineSeg and Ray.

Common base trait for Line, LineSeg and Ray.

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

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

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

Companion:
object

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Companion:
object

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

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

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

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

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

Companion:
object

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

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

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

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

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

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

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

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

Companion:
object
object LineSeg

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

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

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

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

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

Companion:
object
object LineSeg3

Companion object for LineSeg3 contains factory apply methods.

Companion object for LineSeg3 contains factory apply methods.

Companion:
class

To be removed.

To be removed.

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

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

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

Companion:
object
Companion:
class
trait LineSegLike[VT]

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

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

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

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

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

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

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

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

Companion:
object

Companion object for LineSegMetre3 trait contains apply factory method.

Companion object for LineSegMetre3 trait contains apply factory method.

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

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

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

Companion:
object

Companion object for the LineSegs class.

Companion object for the LineSegs class.

Companion:
class
object LineTail

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

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

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

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

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

Companion:
object
object LinesDraw
Companion:
class
implicit implicit class MetreExtensionsImplicit(thisMetres: Length)
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.

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

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

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

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

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

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

Extension class for OrdinaledElems.

Extension class for OrdinaledElems.

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

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

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

Companion:
object

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

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

Companion:
class

A pointable shape

A pointable shape

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

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

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

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

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

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

Companion:
object
object Polygon

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

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

Companion:
class
trait Polygon3Plus extends Polygon

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

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

A Polygon with at least 4 vertices.

A Polygon with at least 4 vertices.

A Polygon with at least 5 vertices.

A Polygon with at least 5 vertices.

A Polygon with at least 6 vertices.

A Polygon with at least 6 vertices.

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

A pointable polygon without visual.

A pointable polygon without visual.

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

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

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

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

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

Companion:
object

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

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

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

A polygon whose elements are defined by 2 Doubles.

A polygon whose elements are defined by 2 Doubles.

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

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

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

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

A polygon whose elements are defined by 3 Doubles.

A polygon whose elements are defined by 3 Doubles.

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

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

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

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

A polygon whose elements are defined by Doubles.

A polygon whose elements are defined by Doubles.

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

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

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

Immutable Graphic element that defines and draws a Polygon.

Immutable Graphic element that defines and draws a Polygon.

Companion:
object
Companion:
class

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

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

Companion:
object

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

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

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

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

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

Companion:
object

Companion object for PolygonGen.

Companion object for PolygonGen.

Companion:
class

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

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

Companion:
object

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

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

Companion:
class

This trait may be removed.

This trait may be removed.

Companion:
object

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

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

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

A polygon whose elements are defined by 2 ints.

A polygon whose elements are defined by 2 ints.

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

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

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

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

A polygon whose elements are defined by Intes.

A polygon whose elements are defined by Intes.

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

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

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

trait PolygonLike[VT]

A Polygon like object, where the points dimensions could be specified in 2D or 3D Length, latitude and longitude etc as well as the regular scalar values of the standard Polygon.

A Polygon like object, where the points dimensions could be specified in 2D or 3D Length, latitude and longitude etc as well as the regular scalar values of the standard Polygon.

Type parameters:
VT

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

final class PolygonM(val unsafeArray: Array[Double]) extends AnyVal with ArrDbl2s[PtM2] with PolygonDbl2s[PtM2]
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 unsafeArray: Array[Double]) extends AnyVal with PolygonDbl3s[PtM3]

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 PolygonM3. Contains apply factory method fromArrayDbl and Persist Implicit.

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

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

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

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

object Polygons

Companion object for the Polygons class.

Companion object for the Polygons class.

trait Prolign[A]

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

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

Companion:
object
object Prolign

Companion object for the Prolign type class.

Companion object for the Prolign type class.

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

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

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

Companion:
object

Companion object for Prolign Matrices.

Companion object for Prolign Matrices.

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

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

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

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

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

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

Companion:
object
object Pt2

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

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

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

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

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

Companion:
object
object Pt2s extends DataDbl2sCompanion[Pt2, Pt2s]

Companion object for the Pt2s sequence class. Contains factory apply method and implicit instances for a number of type classes.

Companion object for the Pt2s sequence class. Contains factory apply method and implicit instances for a number of type classes.

Companion:
class
trait Pt2sLike extends DataDbl2s[Pt2]

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

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

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

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

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

Companion:
object
object Pt3

Companion object for Pt3 class. Contains apply, unapply factory methods and Persist type class instance.

Companion object for Pt3 class. Contains apply, unapply factory methods and Persist type class instance.

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

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

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

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

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

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

final class PtM2(val xMetresNum: Double, val yMetresNum: Double) extends ShowElemDbl2

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

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

Companion:
object
object PtM2

Companion object for PtM2 class contains factory methods.

Companion object for PtM2 class contains factory methods.

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

3 dimensional point specified using metres Length as units rather than pure numbers. The Letter M was used rather L for Length to avoid confusion with the LL ending which is short for Latitude-longitude.

3 dimensional point specified using metres Length as units rather than pure numbers. The Letter M was used rather L for Length to avoid confusion with the LL ending which is short for Latitude-longitude.

Companion:
object
object PtM3

Companion object for the [[PtM3] class. the 3D point measure in metres length.

Companion object for the [[PtM3] class. the 3D point measure in metres length.

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

Specialised immutable Array based collection class for PtM2s.

Specialised immutable Array based collection class for PtM2s.

Companion:
object

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

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

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

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
class Ray extends LineLike

Geometrical Ray.

Geometrical Ray.

Companion:
object
object Ray

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

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

Companion:
class

A Rectangle aligned to the X and Y axes.

A Rectangle aligned to the X and Y axes.

Companion:
object
object Rect

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

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

Companion:
class

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

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

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

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

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

Companion:
object

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

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

Companion:
class

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

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

Companion:
object
object RectFill

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

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

Companion:
class

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

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

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

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

trait RectS2S4 extends Rectangle

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

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

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

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

Companion:
object
object Rectangle

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

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

Companion:
class

A compound graphic for rectangles.

A compound graphic for rectangles.

Companion:
object

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

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

Companion:
class

Graphic that draws a rectangle.

Graphic that draws a rectangle.

Companion:
object

Companion object for RectangleDraw contains factory method and implementation class.

Companion object for RectangleDraw contains factory method and implementation class.

Companion:
class

Graphic to fill a Rectangle with a single colour.

Graphic to fill a Rectangle with a single colour.

Companion:
object

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

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

Companion:
class

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

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

trait Reflect[T]

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

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

Companion:
object
object Reflect

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

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

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

Extension methods for the Reflect type class.

Extension methods for the Reflect type class.

case object RightAlign extends TextAlign
case object RightButton extends MouseButton

Indicates the right mouse button was pressed.

Indicates the right mouse button was pressed.

trait Rotate[T]

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

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

Companion:
object
object Rotate

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

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

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

Extension class for instances of the Rotate type class.

Extension class for instances of the Rotate type class.

class RotateM3Extensions[T](value: T, ev: RotateM3T[T])

Extension class for instances of the RotateM3 type class.

Extension class for instances of the RotateM3 type class.

trait RotateM3T[T]

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

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

Companion:
object
object RotateM3T

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
trait RotateM3TPtPt[T] extends RotateM3T[T]

Implementations for Type class for 3D Length geometric rotation transformations of objects of type T.

Implementations for Type class for 3D Length geometric rotation transformations of objects of type T.

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 unsafeArray: Array[Double]) extends DataDbl7s[CurveTail] with AffinePreserve

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

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

Companion:
object

A shape based graphic.

A shape based graphic.

Companion:
object

Companion object for the ShapeGraphic class.

Companion object for the ShapeGraphic class.

Companion:
class

A ShapeGraphic based on a Shape with a defined centre.

A ShapeGraphic based on a Shape with a defined centre.

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

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

trait ShapeIcon

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

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

trait Shear[T]

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

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

Companion:
object
object Shear

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

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

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

Extensions class for the Shear type class.

Extensions class for the Shear type class.

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

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

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

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

trait Slate[T]

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

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

Companion:
object
object Slate

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

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

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

Extension class for instances of the Slate type class.

Extension class for instances of the Slate type class.

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

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

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

case class SqCenlign(width: Double)

Not sure about this class.

Not sure about this class.

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

A square aligned to the X and Y axes.

A square aligned to the X and Y axes.

Companion:
object
object Sqlign

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

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

Companion:
class
trait Square extends Rectangle

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

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

Companion:
object
object Square extends ShapeIcon

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

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

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

An SVG element.

An SVG element.

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

Implementation class for TextCell.

Implementation class for TextCell.

trait TextCell

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

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

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

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

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

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

A Graphical display of Text.

A Graphical display of Text.

Value parameters:
posn

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

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

AffDistine Transformation

AffDistine Transformation

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

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

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

Companion:
object
object TransAlign

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

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

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

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

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

Companion:
object

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

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

Companion:
class

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

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

trait TransAxes[T]

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

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

Companion:
object
object TransAxes

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

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

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

Class to provide extension methods for TransAxes type class.

Class to provide extension methods for TransAxes type class.

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

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

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

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

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

Companion:
object

The companion object for Transer.

The companion object for Transer.

Companion:
class

A Rigid or Euclidean transformations type class.

A Rigid or Euclidean transformations type class.

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

A Similar Transformations type class

A Similar Transformations type class

Companion:
object
object TransSim

Companion object for the TranSim transformation type class trait.

Companion object for the TranSim transformation type class trait.

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

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

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

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

Probably worth keeping

Probably worth keeping

trait Triangle extends Polygon3Plus

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

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

Companion:
object
object Triangle
Companion:
class
final case class TriangleEqui(v0x: Double, v0y: Double, v2x: Double, v2y: 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(v0x: Double, v0y: Double, v2x: Double, v2y: 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, unapply extractor and implicit [[Persist instances.

Companion object for Vec2 contains apply factory, unapply extractor and implicit [[Persist instances.

Companion:
class
trait Vec2Like extends ShowElemDbl2 with ApproxDbl

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

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

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

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

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

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

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

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

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

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

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

Companion:
object
object Vec3

Companion object for 3 dimensional vector Vec3 class. Contains apply factory unapply extractor and Persist type class instance.

Companion object for 3 dimensional vector Vec3 class. Contains apply factory unapply extractor and Persist type class instance.

Companion:
class
trait Vec3Like extends ShowElemDbl3 with ApproxDbl

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

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

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

SVG ViewBox.

SVG ViewBox.

case class WidthAtt(value: Double) extends XANumeric

XML attribute ofr width.

XML attribute ofr width.

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

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

case class XAttrib(value: Double) extends XANumeric

XML attribute for x posn.

XML attribute for x posn.

object XAxis extends XParallel with XorYAxis

The X Axis in 2 dimensional space.

The X Axis in 2 dimensional space.

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

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

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

sealed class XParallel(offset: Double) extends XLine

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

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

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

XML attribute for y posn.

XML attribute for y posn.

object YAxis extends XParallel with XorYAxis

The Y Axis in 2 dimensional space.

The Y Axis in 2 dimensional space.

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

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

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

sealed class YParallel(offset: Double) extends YLine

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

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

trait length2M extends ShowElemDbl2

Value members

Concrete methods

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

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

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

def yVec2(y: Double): Vec2

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

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

Concrete fields

val Ang0: Angle

An absolute angle of 0 degrees or 0 radians.

An absolute angle of 0 degrees or 0 radians.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

90 degrees anti-clockwise or + Pi/2 radians

90 degrees anti-clockwise or + Pi/2 radians

0 degrees or 0 radians

0 degrees or 0 radians

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

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

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

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

15 degrees anti-clockwise or + Pi/12 radians

15 degrees anti-clockwise or + Pi/12 radians

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

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

180 degrees or Pi radians

180 degrees or Pi radians

210 degrees or Pi radians

210 degrees or Pi radians

240 degrees or Pi radians

240 degrees or Pi radians

25 degrees anti-clockwise or +25 degrees.

25 degrees anti-clockwise or +25 degrees.

270 degrees or Pi radians

270 degrees or Pi radians

30 degrees anti-clockwise or + Pi/6 radians

30 degrees anti-clockwise or + Pi/6 radians

300 degrees or Pi radians

300 degrees or Pi radians

36 degrees anti-clockwise or + Pi/5 radians

36 degrees anti-clockwise or + Pi/5 radians

45 degrees anti-clockwise or + Pi/4 radians

45 degrees anti-clockwise or + Pi/4 radians

60 degrees anti-clockwise or + Pi/3 radians

60 degrees anti-clockwise or + Pi/3 radians

72 degrees anti-clockwise or + Pi2/5 radians

72 degrees anti-clockwise or + Pi2/5 radians

90 degrees anti-clockwise or + Pi/2 radians

90 degrees anti-clockwise or + Pi/2 radians

Dist2(0.km, 0.km) constant

Dist2(0.km, 0.km) constant

The Earths equatorial radius 6378.137 km.

The Earths equatorial radius 6378.137 km.

The Earths polar radius 6356.7523 km.

The Earths polar radius 6356.7523 km.

The number of thousands of an arc second in 180 degrees = 1800000000.

The number of thousands of an arc second in 180 degrees = 1800000000.

The number of thousands of an arc second in 360 degrees = 3600000000.

The number of thousands of an arc second in 360 degrees = 3600000000.

The number of thousands of an arc second in 90 degrees = 900000000.

The number of thousands of an arc second in 90 degrees = 900000000.

The number of thousandths of an arc second in a degree = 3600000.

The number of thousandths of an arc second in a degree = 3600000.

The number of thousands of an arc second in a radian = 2.0626480624709636E8.

The number of thousands of an arc second in a radian = 2.0626480624709636E8.

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.

The number arc seconds in 180 degrees = 1800000.

The number arc seconds in 180 degrees = 1800000.

The number of arc seconds in 360 degrees = 3600000.

The number of arc seconds in 360 degrees = 3600000.

The number arc seconds in 90 degrees = 900000.

The number arc seconds in 90 degrees = 900000.

The number of arc seconds in a degree = 3600.

The number of arc seconds in a degree = 3600.

The number arc seconds in a radian = 206264.80624709636.

The number arc seconds in a radian = 206264.80624709636.

Implicits

Implicits

final implicit def AnyGeomImplicit(thisAny: Any): AnyGeomImplicit
final implicit def BuffDblExtensionsImplicit[A <: ElemDblN](thisBuff: BuffDblNs[A]): BuffDblExtensionsImplicit[A]
final implicit def BuffIntExtensionsImplicit[A <: ElemIntN](thisBuff: BuffIntNs[A]): BuffIntExtensionsImplicit[A]
final implicit def MetreExtensionsImplicit(thisMetres: Length): MetreExtensionsImplicit
final implicit def OptionGeomImplicit[A](thisOption: Option[A]): OptionGeomImplicit[A]
implicit def OrdinaledElemToExtensions[T <: OrdinaledElem](value: T)(implicit ev: Slate[T]): OrdinaledExtensions[T]
final implicit def ProlignMatrixExtension[T](value: T)(implicit ev: Prolign[T]): ProlignMatrixExtension[T]
final implicit def StringImplictGeom(thisString: String): StringImplictGeom
implicit def boundedToExtensions[T <: BoundedElem](value: T): BoundedExtensions[T]
implicit def dataGenExtension[A](value: DataGen[A]): DataGenExtensions[A]
implicit def intToImplicitGeom(thisInt: Int): IntGeomImplicit
implicit def reflectToExtension[T](value: T)(implicit ev: Reflect[T]): ReflectExtensions[T]
implicit def rotateM3ToExtensions[T, T1 <: T](value: T1)(implicit ev: RotateM3T[T]): RotateM3Extensions[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]