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

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

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

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

Companion object for AngleVec trait contains factory methods.

Companion object for AngleVec trait contains factory methods.

- Companion:
- class

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

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 for producing arrow graphics to point at objects in diagrams.

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

Indicates the back mouse button was pressed.

Indicates the back mouse button was pressed.

Functional class for Drawing a cubic Bezier curve.

Functional class for Drawing a cubic Bezier curve.

- Companion:
- object

Companion object for the BezierDraw class.

Companion object for the BezierDraw class.

- Companion:
- class

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.

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.

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.

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

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

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

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

A 2D geometric element with a defined centre.

A 2D geometric element with a defined centre.

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

Compound Circle Graphic class.

Compound Circle Graphic class.

A simple draw of a circle graphic.

A simple draw of a circle graphic.

A simple single colour fill of a circle graphic.

A simple single colour fill of a circle graphic.

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.

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

This class needs replacing.

This class needs replacing.

- Companion:
- object

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.

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

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.

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

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

- Companion:
- object

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

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

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

- Companion:
- object

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

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

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

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

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

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.

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

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

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

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

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

Indicates the forward mouse button was pressed.

Indicates the forward mouse button was pressed.

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

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 is the new active trait that will replace GraphicActive.

This is the new active trait that will replace GraphicActive.

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

XML attribute for height.

XML attribute for height.

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

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

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

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

A regular Hexagon aligned to the X and Y axes.

A regular Hexagon aligned to the X and Y axes.

Extension methods class for Int, for the geom package.

Extension methods class for Int, for the geom package.

Indicates the left mouse button was pressed.

Indicates the left mouse button was pressed.

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

Efficient expandable buffer for Line2s.

Efficient expandable buffer for Line2s.

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

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

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

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

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

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

Companion object for LineSeg3 contains factory apply methods.

Companion object for LineSeg3 contains factory apply methods.

- Companion:
- class

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

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.

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

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.

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.

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

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

- Companion:
- object

Indicates the middel mouse button was pressed.

Indicates the middel mouse button was pressed.

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

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

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.

Indicates no mouse button was pressed.

Indicates no mouse button was pressed.

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.

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.

- Companion:
- object

- Companion:
- object

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

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.

- Companion:
- object

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

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

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 pointable polygon without visual.

A pointable polygon without visual.

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

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

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

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

A polygon whose elements are defined by 2 ints.

A polygon whose elements are defined by 2 ints.

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.

A polygon whose elements are defined by Intes.

A polygon whose elements are defined by Intes.

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.

`map(f: A => B): ArrB`

function.

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.

The companion object for PolygonDist. Provides an implicit builder.

The companion object for PolygonDist. Provides an implicit builder.

- Companion:
- class

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.

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.

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

Companion object for the Prolign type class.

Companion object for the Prolign type class.

- Companion:
- class

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

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

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.

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

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

- Companion:
- object

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.

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

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

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

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

- Companion:
- class

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

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.

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

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

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

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.

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

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

Extension methods for the Reflect type class.

Extension methods for the Reflect type class.

Indicates the right mouse button was pressed.

Indicates the right mouse button was pressed.

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

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

Extension class for instances of the Rotate type class.

Extension class for instances of the Rotate type class.

Extension class for instances of the RotateM3 type class.

Extension class for instances of the RotateM3 type class.

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

- Companion:
- class

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

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

Extension methods for the Scale type class.

Extension methods for the Scale type class.

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

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

A Shape with a centre field.

A Shape with a centre field.

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

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

To be phased out.

To be phased out.

To be phased out.

To be phased out.

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

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.

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

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

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.

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

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

Extension class for instances of the Slate type class.

Extension class for instances of the Slate type class.

A square aligned to the X and Y axes.

A square aligned to the X and Y axes.

- Companion:
- object

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

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

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.

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

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

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

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.

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.

Class to provide extension methods for TransAxes type class.

Class to provide extension methods for TransAxes type class.

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 object for the TranSim transformation type class trait.

Companion object for the TranSim transformation type class trait.

- Companion:
- class

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

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

- Companion:
- object

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

Equilateral triangle. will become a trait.

Equilateral triangle. will become a trait.

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.

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.

Indicates the mouse button is unknown.

Indicates the mouse button is unknown.

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

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

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

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

SVG ViewBox.

SVG ViewBox.

XML attribute ofr width.

XML attribute ofr width.

XML attribute for x posn.

XML attribute for x posn.

The X Axis in 2 dimensional space.

The X Axis in 2 dimensional space.

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.

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.

XML attribute for y posn.

XML attribute for y posn.

The Y Axis in 2 dimensional space.

The Y Axis in 2 dimensional space.

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.

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.

### Types

## Value members

### Concrete methods

### Concrete fields

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

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.

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

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

The number of arc seconds in 360 degrees = 3600000.

The number of arc seconds in 360 degrees = 3600000.