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.

Attributes

Members list

Concise view

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.

Attributes

Graph
Supertypes
trait GeomElem
class Any
Known subtypes
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.

Attributes

Companion:
object
Graph
Supertypes
trait TransSim[T]
trait TransAlign[T]
class Object
trait Matchable
class Any

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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class AlignMatrix(xFactor: Double, yFactor: Double, xDelta: Double, yDelta: Double)

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
final class Angle extends AnyVal with AngleLike with Ordered[Angle] with Dbl1Elem

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

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

Attributes

Companion:
object
Graph
Supertypes
trait Ordered[Angle]
trait Comparable[Angle]
class Object
trait AngleLike
trait Dbl1Elem
trait DblNElem
trait SpecialT
trait Equals
trait ShowDec
trait Show
trait TypeStr
class AnyVal
trait Matchable
class Any
object Angle

Angle Companion object.

Angle Companion object.

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Angle.type
trait AngleLike extends ShowDec with ApproxAngle with Dbl1Elem

Base trait for Angle, AngleVec, Latitude and Longitude.

Base trait for Angle, AngleVec, Latitude and Longitude.

Attributes

Graph
Supertypes
trait Dbl1Elem
trait DblNElem
trait SpecialT
trait Equals
trait ShowDec
trait Show
trait TypeStr
class Any
Known subtypes
class Angle
class AngleVec
class Latitude
class 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.

Attributes

Companion:
object
Graph
Supertypes
trait AngleLike
trait Dbl1Elem
trait DblNElem
trait SpecialT
trait Equals
trait ShowDec
trait Show
trait TypeStr
class Object
trait Matchable
class Any
object AngleVec

Companion object for AngleVec trait contains factory methods.

Companion object for AngleVec trait contains factory methods.

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
final class Angles(val unsafeArray: Array[Double]) extends AnyVal with Dbl1Arr[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.

Attributes

Companion:
object
Graph
Supertypes
trait Dbl1Arr[Angle]
trait DblNArr[Angle]
trait Arr[Angle]
trait Sequ[Angle]
trait SpecialT
trait SeqLike[Angle]
class AnyVal
trait Matchable
class Any
object Angles

Companion object for Angles class.

Companion object for Angles class.

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Angles.type
implicit class AnyGeomImplicit(thisAny: Any)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
trait ApproxAngle extends Approx[AngleVec]

Attributes

Graph
Supertypes
trait Equals
class Any
Known subtypes
trait AngleLike
class Angle
class AngleVec
class Latitude
class Longitude
trait ApproxAngleT[T] extends ApproxT[AngleVec, T]

Attributes

Graph
Supertypes
trait ApproxT[AngleVec, T]
class Object
trait Matchable
class Any

To be removed.

To be removed.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
ArcTail.type
object Arrow

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

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Arrow.type
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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
case object BackButton extends MouseButton

Indicates the back mouse button was pressed.

Indicates the back mouse button was pressed.

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
sealed trait BaseLine

Baseline style for text.

Baseline style for text.

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Alphabetic.type
object Bottom.type
object Hanging.type
object Ideographic.type
object Middle.type
object Top.type
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.

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
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.

Attributes

Companion:
object
Graph
Supertypes
trait CurveSeg
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
object Bezier

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Bezier.type
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.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait CanvElem
trait GeomElem
class Object
trait Matchable
class Any
object BezierDraw

Companion object for the BezierDraw class.

Companion object for the BezierDraw class.

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
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.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
class Circle
trait RectFill
trait Rect
class PhiRect
class PhiRectY
class RectImp
class Sqlign
trait Ellipse
trait HexReg
class HexRegImp
trait Hexlign
class HexParrX
class HexParrY
trait Rectangle
trait Square
class SquareImp
trait ShapeDraw
trait ShapeFill
trait Polygon
trait Triangle
trait Shape
class ShapeGen
final class BoundedExtensions[T <: BoundedElem](val thisT: T) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any
object BoundingNone extends BoundingOpt

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
sealed trait BoundingOpt

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object BoundingNone.type
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.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
implicit class BuffDblExtensionsImplicit[A <: DblNElem](val thisBuff: DblNBuff[A])

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
implicit class BuffIntExtensionsImplicit[A <: IntNElem](val thisBuff: IntNBuff[A])

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
final class BuffPtMetre2(val unsafeBuffer: ArrayBuffer[Double]) extends AnyVal with Dbl2Buff[PtM2]

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

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

Attributes

Companion:
object
Graph
Supertypes
trait Dbl2Buff[PtM2]
trait DblNBuff[PtM2]
trait Buff[PtM2]
trait Sequ[PtM2]
trait SeqLike[PtM2]
class AnyVal
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
final class BuffVec2(val unsafeBuffer: ArrayBuffer[Double]) extends AnyVal with Dbl2Buff[Vec2]

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

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

Attributes

Companion:
object
Graph
Supertypes
trait Dbl2Buff[Vec2]
trait DblNBuff[Vec2]
trait Buff[Vec2]
trait Sequ[Vec2]
trait SeqLike[Vec2]
class AnyVal
trait Matchable
class Any
object BuffVec2

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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.

Attributes

Companion:
object
Graph
Supertypes
trait EArclign
trait EArc
trait CurveSeg
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
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.

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
CArc.type
case class CArcDraw(curveSeg: CArc, colour: Colour, lineWidth: Double) extends EArcDraw with AxisFree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait AxisFree
trait EArcDraw
trait CanvElem
trait GeomElem
class Object
trait Matchable
class Any
class CArcTail(val xCen: Double, val yCen: Double, val xEnd: Double, val yEnd: Double, val counter: Int) extends CurveSegTail

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
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.

Attributes

Companion:
object
Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait CanvShapeDraw extends ShapeDraw with CanvElem

Attributes

Graph
Supertypes
trait CanvElem
trait ShapeDraw
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
trait CanvShapeFill extends ShapeFill with CanvElem

ShapeFill element that is a CanvElem

ShapeFill element that is a CanvElem

Attributes

Graph
Supertypes
trait CanvElem
trait ShapeFill
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
case object CenAlign extends TextAlign

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait TextAlign
class Object
trait Matchable
class Any
Self type

A 2D geometric element with a defined centre.

A 2D geometric element with a defined centre.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
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.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait AxisFree
trait Ellipse
trait Shape
trait Fillable
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
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.

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
trait ShapeIcon
class Object
trait Matchable
class Any
Self type
Circle.type
case class CircleCompound(shape: Circle, facets: RArr[GraphicFacet], children: RArr[GraphicElem]) extends EllipseCompound with CircleGraphic with AxisFree

Compound Circle Graphic class.

Compound Circle Graphic class.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait AxisFree
trait GeomElem
class Object
trait Matchable
class Any
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.

Attributes

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

Attributes

Graph
Supertypes
case class CircleFillIcon(fillColour: Colour) extends ShapeFillIcon

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

A circle based Graphic, may be simple or compound.

A circle based Graphic, may be simple or compound.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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

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

Attributes

Graph
Supertypes
Known subtypes
object Cross

This just a temporary start.

This just a temporary start.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Cross.type
trait CurveFacet extends GraphicFacet

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class DrawFacet
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.

Attributes

Companion:
object
Graph
Supertypes
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
class Bezier
trait EArc
class EArcImp
trait EArclign
class CArc
class LineSeg
object CurveSeg

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
final class CurveSegDists(val unsafeArray: Array[Double]) extends AnyVal with Dbl7Arr[DistCurveTail]

This class needs replacing.

This class needs replacing.

Attributes

Companion:
object
Graph
Supertypes

Attributes

Companion:
class
Graph
Supertypes
Self type

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

Graphic based on a CurveSeg.

Graphic based on a CurveSeg.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class CArcTail
case class CurveTail(iMatch: Double, xC1: Double, yC1: Double, xUses: Double, yUses: Double, xEnd: Double, yEnd: Double) extends Dbl7Elem with AffinePreserve

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

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

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait GeomElem
trait Dbl7Elem
trait DblNElem
trait SpecialT
class Object
trait Matchable
class Any
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.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait CanvElem
trait GeomElem
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

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

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class DistCurveTail(val iMatch: Double, val xC1Metres: Double, val yC1Metres: Double, val xUsesMetres: Double, val yUsesMetres: Double, val xEndMetres: Double, val yEndMetres: Double) extends Dbl7Elem with DistCurveSegLike

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

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

Attributes

Graph
Supertypes
trait Dbl7Elem
trait DblNElem
trait SpecialT
class Object
trait Matchable
class Any
class DoubleImplicitGeom(thisDouble: Double)

Extension methods class for Double, for the geom package.

Extension methods class for Double, for the geom package.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
case class DrawFacet(colour: Colour, width: Double) extends CurveFacet

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
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.

Attributes

Companion:
object
Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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.

Attributes

Companion:
object
Graph
Supertypes
trait CurveSeg
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
class EArcImp
trait EArclign
class CArc
object EArc

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
EArc.type
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.

Attributes

Companion:
object
Graph
Supertypes
trait CanvElem
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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.

Attributes

Companion:
object
Graph
Supertypes
trait EArc
trait CurveSeg
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
class CArc
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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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]].

Attributes

Companion:
object
Graph
Supertypes
trait Shape
trait Fillable
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Ellipse.type
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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
trait EArc
class EArcImp
trait EArclign
class CArc
trait Ellipse
class Circle

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.

Attributes

Companion:
object
Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion:
object
Graph
Supertypes
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

A simple single colour fill of a circle graphic.

A simple single colour fill of a circle graphic.

Attributes

Companion:
object
Graph
Supertypes
Known subtypes

Companion object for the EllipseFill class.

Companion object for the EllipseFill class.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

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

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

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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

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

Attributes

Graph
Supertypes
Known subtypes
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.

Attributes

Companion:
object
Graph
Supertypes
trait Ellipse
trait Shape
trait Fillable
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class FillAttrib(colour: Colour) extends XmlAtt

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait XmlAtt
class Object
trait Matchable
class Any
trait FillFacet extends GraphicFacet

Attributes

Graph
Supertypes
class Any
Known subtypes
class Colour
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.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait FillFacet
class Object
trait Matchable
class Any
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.

Attributes

Graph
Supertypes
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
case object ForwardButton extends MouseButton

Indicates the forward mouse button was pressed.

Indicates the forward mouse button was pressed.

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
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.

Attributes

Companion:
object
Graph
Supertypes
class Any
Known subtypes
trait AxisFree
class CArcDraw
class Circle
class ShapeGen
trait RectFill
trait Rect
class PhiRect
class PhiRectY
class RectImp
class Sqlign
trait Ellipse
trait HexReg
class HexRegImp
trait Hexlign
class HexParrX
class HexParrY
trait Rectangle
trait Square
class SquareImp
trait ShapeDraw
trait ShapeFill
trait Polygon
trait Triangle
trait Shape
trait Drawable
trait CurveSeg
class Bezier
trait EArc
class EArcImp
trait EArclign
class CArc
class LineSeg
trait Fillable
trait CanvElem
trait EArcDraw
class LinesDraw
trait LineLike
trait Line
class XLine
class XParallel
object XAxis.type
object YAxis.type
trait XorYAxis
class YLine
class YParallel
class Ray
class CurveTail
class LinePath
class Pt2Arr
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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Companion:
object
Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

This is the new active trait that will replace GraphicActive.

This is the new active trait that will replace GraphicActive.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
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.

Attributes

Companion:
object
Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes
trait CanvElem
trait RectFill
trait EArcDraw
class CArcDraw
class LinesDraw
trait ShapeDraw
trait ShapeFill

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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Graph
Supertypes
class Any
Known subtypes

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.

Attributes

Graph
Supertypes
Known subtypes

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.

Attributes

Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Companion:
object
Graph
Supertypes
trait GeomElem
class Object
trait Matchable
class Any
Known subtypes

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.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class HeightAtt(value: Double) extends XANumeric

XML attribute for height.

XML attribute for height.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait XANumeric
trait XmlAtt
class Object
trait Matchable
class Any
final class HexParrX(val unsafeArray: Array[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

Attributes

Companion:
object
Graph
Supertypes