LinePath

ostrat.geom.LinePath
See theLinePath companion object
final class LinePath(val arrayUnsafe: Array[Double]) extends AffinePreserve, Pt2SeqSpec, LinePathDbl2[Pt2]

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

Attributes

Companion
object
Graph
Supertypes
trait LinePathDbl2[Pt2]
trait LinePathDblN[Pt2]
trait LinePathLike[Pt2]
trait Pt2SeqSpec
trait SeqSpecDbl2[Pt2]
trait SeqSpecDblN[Pt2]
trait SeqSpec[Pt2]
trait Pt2SeqLike
trait SeqLikeDbl2[Pt2]
trait SeqLikeDblN[Pt2]
trait SpecialT
trait PointSeqLike[Pt2]
trait SeqLike[Pt2]
trait GeomElem
class Object
trait Matchable
class Any
Show all

Members list

Type members

Types

override type PolygonT = Polygon
override type ThisT = LinePath

Gives the final type of this class.

Gives the final type of this class.

Attributes

Inherited types

Attributes

Inherited from:
LinePathLike

Attributes

Inherited from:
LinePathLike

Value members

Concrete methods

def draw(lineWidth: Double, colour: Colour): LinePathDraw
def fromArray(array: Array[Double]): LinePath
def pStart: Pt2
override def polygonFromArray(array: Array[Double]): Polygon

Constructs a PolygonLike for this vertex type from an Array[Double].

Constructs a PolygonLike for this vertex type from an Array[Double].

Attributes

Definition Classes
def ptsTrans(f: Pt2 => Pt2): LinePath

A method to perform all the ProlignPreserve transformations with a function from PT2 => PT2.

A method to perform all the ProlignPreserve transformations with a function from PT2 => PT2.

Attributes

override def typeStr: String

String specifying the type of this object.

String specifying the type of this object.

Attributes

Definition Classes
def xStart: Double

Closes the line Path into a Polygon, by mirroring across the yAxis. This is useful for describing symmetrical across the y Axis polygons, with the minimum number of points. The implementation is efficient, but is logical equivalent of myVec2s ++ myVec2s.reverse.negX.

Closes the line Path into a Polygon, by mirroring across the yAxis. This is useful for describing symmetrical across the y Axis polygons, with the minimum number of points. The implementation is efficient, but is logical equivalent of myVec2s ++ myVec2s.reverse.negX.

Attributes

def yStart: Double

Inherited methods

final override def %:(operand: Pt2): ThisT

Prepends a single vertex of type VT. Returns a new extended LinePathLike.

Prepends a single vertex of type VT. Returns a new extended LinePathLike.

Attributes

Definition Classes
Inherited from:
LinePathDblN
final override def +%[AA >: Pt2](op: Pt2): ThisT

Appends a single vertex of type VT. Returns a new extended LinePathLike.

Appends a single vertex of type VT. Returns a new extended LinePathLike.

Attributes

Definition Classes
Inherited from:
LinePathDblN
final override def ++(operand: ThisT): ThisT

Appends another LinePathLike of this type. Returns a new extended LinePathLike.

Appends another LinePathLike of this type. Returns a new extended LinePathLike.

Attributes

Definition Classes
Inherited from:
LinePathDblN
override def ++-(operand: ThisT): ThisT

Appends the init of another LinePathLike of this type. Returns a new extended LinePathLike. The ++ indicates to append a sequence. the trailing - indicates to drop the last point.

Appends the init of another LinePathLike of this type. Returns a new extended LinePathLike. The ++ indicates to append a sequence. the trailing - indicates to drop the last point.

Attributes

Definition Classes
Inherited from:
LinePathDblN
final override def ++<(operand: ThisT): ThisT

Appends the reverse vertex order of another LinePathLike of this type. Returns a new extended LinePathLike.

Appends the reverse vertex order of another LinePathLike of this type. Returns a new extended LinePathLike.

Attributes

Definition Classes
Inherited from:
LinePathDblN
def appendArray(appendProductsLength: Int): Array[Double]

Builder helper method that provides a longer array, with the underlying array copied into the new extended Array.

Builder helper method that provides a longer array, with the underlying array copied into the new extended Array.

Attributes

Inherited from:
SeqSpecDblN

Attributes

Inherited from:
LinePathDblN
def arrTrans(f: Pt2 => Pt2): Array[Double]

Attributes

Inherited from:
Pt2SeqLike
final def arrayLen: Int

The total number of atomic values, Ints, Doubles, Longs etc in the backing Array.

The total number of atomic values, Ints, Doubles, Longs etc in the backing Array.

Attributes

Inherited from:
SeqLikeDblN

Attributes

Inherited from:
SeqSpecDbl2

Attributes

Inherited from:
SeqSpecDbl2
override def elemProdSize: Int

The number of atomic values, Ints, Doubles, Longs etc that specify / construct an element of this immutable flat Array based collection class.

The number of atomic values, Ints, Doubles, Longs etc that specify / construct an element of this immutable flat Array based collection class.

Attributes

Definition Classes
Inherited from:
SeqLikeDbl2
override def elemsStr: String

The element String allows the composition of toString for the whole collection. The syntax of the output will be reworked.

The element String allows the composition of toString for the whole collection. The syntax of the output will be reworked.

Attributes

Definition Classes
Inherited from:
SeqSpec
final override def fElemStr: Pt2 => String

Attributes

Definition Classes
Inherited from:
Pt2SeqLike
override def init: ThisT

This line path with the last vertex removed. This can be useful for borders where the end points may show up in multiple line paths and therefore sometimes need to be excluded when appending.

This line path with the last vertex removed. This can be useful for borders where the end points may show up in multiple line paths and therefore sometimes need to be excluded when appending.

Attributes

Definition Classes
Inherited from:
LinePathDblN
override def inner: ThisT

This line path with the first and last vertex's removed. This can be useful for borders where the end points may show up in multiple line paths* and therefore sometimes need to be excluded when appending.

This line path with the first and last vertex's removed. This can be useful for borders where the end points may show up in multiple line paths* and therefore sometimes need to be excluded when appending.

Attributes

Definition Classes
Inherited from:
LinePathDblN
def map[B <: ValueNElem, BB <: LinePathLike[B]](f: Pt2 => B)(implicit build: LinePathBuilder[B, BB]): BB

maps to a LinePathLike. This map operates on a single LinePathLike its not to be confused with a map on Arr of LinePathLikes.

maps to a LinePathLike. This map operates on a single LinePathLike its not to be confused with a map on Arr of LinePathLikes.

Attributes

Inherited from:
LinePathLike
override def negX: ThisT

Mirror, reflection 2D geometric transformation across the Y axis by negating X. The return type will be narrowed in sub traits / classes.

Mirror, reflection 2D geometric transformation across the Y axis by negating X. The return type will be narrowed in sub traits / classes.

Attributes

Definition Classes
Inherited from:
SimilarPreserve
override def negY: ThisT

Mirror, reflection 2D geometric transformation across the X axis by negating y. The return type will be narrowed in sub traits / classes.

Mirror, reflection 2D geometric transformation across the X axis by negating y. The return type will be narrowed in sub traits / classes.

Attributes

Definition Classes
Inherited from:
SimilarPreserve
final def numVerts: Int

Attributes

Inherited from:
LinePathLike
override def prolign(matrix: ProlignMatrix): ThisT

2D Transformation using a ProlignMatrix. The return type will be narrowed in sub classes / traits.

2D Transformation using a ProlignMatrix. The return type will be narrowed in sub classes / traits.

Attributes

Definition Classes
Inherited from:
ProlignPreserve
override def reflect(lineLike: LineLike): ThisT

Reflect 2D geometric transformation across a line, line segment or ray on a GeomElem. The return type will be narrowed in sub classes and traits.

Reflect 2D geometric transformation across a line, line segment or ray on a GeomElem. The return type will be narrowed in sub classes and traits.

Attributes

Definition Classes
Inherited from:
SimilarPreserve
override def reverse: ThisT

Reverses the order of the elements of the specifying sequence.

Reverses the order of the elements of the specifying sequence.

Attributes

Definition Classes
Inherited from:
SeqSpecDblN
override def rotate(angle: AngleVec): ThisT

Rotation 2D geometric transformation on a GeomElem. The return type will be narrowed in sub classes and traits.

Rotation 2D geometric transformation on a GeomElem. The return type will be narrowed in sub classes and traits.

Attributes

Definition Classes
Inherited from:
SimilarPreserve
override def rotate180: ThisT

Rotation of 180 degrees, 2D geometric transformation on a GeomElem, returns a GeomElem. The return type will be narrowed in sub classes and traits.

Rotation of 180 degrees, 2D geometric transformation on a GeomElem, returns a GeomElem. The return type will be narrowed in sub classes and traits.

Attributes

Definition Classes
Inherited from:
SimilarPreserve
override def rotate270: ThisT

Rotation positive or anti clockwise 270 degrees, 2D geometric transformation on a GeomElem, returns a GeomElem. The return type will be narrowed in sub classes and traits.

Rotation positive or anti clockwise 270 degrees, 2D geometric transformation on a GeomElem, returns a GeomElem. The return type will be narrowed in sub classes and traits.

Attributes

Definition Classes
Inherited from:
SimilarPreserve
override def rotate90: ThisT

Rotation positive or anti clockwise 90 degrees, 2D geometric transformation on a GeomElem, returns a GeomElem. The return type will be narrowed in sub classes and traits.

Rotation positive or anti clockwise 90 degrees, 2D geometric transformation on a GeomElem, returns a GeomElem. The return type will be narrowed in sub classes and traits.

Attributes

Definition Classes
Inherited from:
SimilarPreserve
override def scale(operand: Double): ThisT

Uniform 2D geometric scaling transformation. The scale name was chosen for this operation as it is normally the desired operation and preserves Circles and Squares. Use the xyScale method for differential scaling. The Return type will be narrowed in sub traits / classes.

Uniform 2D geometric scaling transformation. The scale name was chosen for this operation as it is normally the desired operation and preserves Circles and Squares. Use the xyScale method for differential scaling. The Return type will be narrowed in sub traits / classes.

Attributes

Definition Classes
Inherited from:
ProlignPreserve
override def scaleXY(xOperand: Double, yOperand: Double): ThisT

Scaling X and Y axes independently, 2D geometric transformation on this GeomElem, returns a new GeomElem. This allows different scaling factors across X and Y dimensions. The return type will be narrowed in sub classes and traits. This is an affine transformation but it is not a similar transformation.

Scaling X and Y axes independently, 2D geometric transformation on this GeomElem, returns a new GeomElem. This allows different scaling factors across X and Y dimensions. The return type will be narrowed in sub classes and traits. This is an affine transformation but it is not a similar transformation.

Attributes

Definition Classes
Inherited from:
AffinePreserve
override def setElemUnsafe(index: Int, newElem: Pt2): Unit

Sets / mutates an element in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Sets / mutates an element in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Attributes

Definition Classes
Inherited from:
SeqLikeDbl2
def setElemsUnsafe(index: Int, elems: Pt2*): Unit

Sets / mutates elements in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Sets / mutates elements in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Attributes

Inherited from:
SeqLike
override def shearX(operand: Double): ThisT

Shear 2D geometric transformation along the X Axis on a GeomElem. The return type will be narrowed in sub classes and traits. This is an affine transformation but it is not a similar transformation.

Shear 2D geometric transformation along the X Axis on a GeomElem. The return type will be narrowed in sub classes and traits. This is an affine transformation but it is not a similar transformation.

Attributes

Definition Classes
Inherited from:
AffinePreserve
override def shearY(operand: Double): ThisT

Shear 2D geometric transformation along the Y Axis on a GeomElem. The return type will be narrowed in sub classes and traits. This is an affine transformation but it is not a similar transformation.

Shear 2D geometric transformation along the Y Axis on a GeomElem. The return type will be narrowed in sub classes and traits. This is an affine transformation but it is not a similar transformation.

Attributes

Definition Classes
Inherited from:
AffinePreserve
override def slateXY(xDelta: Double, yDelta: Double): ThisT

Translate 2D geometric transformation, taking the xOffset and yOffset as parameters on this GeomElem returning a GeomElem. The Return type will be narrowed in sub traits. End users will often want to use the slate method taking a Pt2 or Vec2 as a parameter, the slateX or the slateY methods. These methods will be offered as extension methods using this method for their implementations.

Translate 2D geometric transformation, taking the xOffset and yOffset as parameters on this GeomElem returning a GeomElem. The Return type will be narrowed in sub traits. End users will often want to use the slate method taking a Pt2 or Vec2 as a parameter, the slateX or the slateY methods. These methods will be offered as extension methods using this method for their implementations.

Attributes

Definition Classes
Inherited from:
ProlignPreserve
final override def ssElem(d1: Double, d2: Double): Pt2

Method for creating new specifying sequence elements from 2 Doubles In the case of ArrDbl2 this will be thee type of the elements of the sequence.

Method for creating new specifying sequence elements from 2 Doubles In the case of ArrDbl2 this will be thee type of the elements of the sequence.

Attributes

Definition Classes
Inherited from:
Pt2SeqSpec
override def ssElemEq(a1: Pt2, a2: Pt2): Boolean

Checks if 2 values of the specifying sequence are equal.

Checks if 2 values of the specifying sequence are equal.

Attributes

Definition Classes
Inherited from:
SeqSpecDbl2
def ssFold[B](initVal: B)(f: (B, Pt2) => B): B

specifying -sequence fold.

specifying -sequence fold.

Attributes

Inherited from:
SeqSpec
def ssForAll(f: Pt2 => Boolean): Boolean

Attributes

Inherited from:
SeqSpecValueN
def ssForeach[U](f: Pt2 => U): Unit

Performs a side effecting function on each element of the specifying sequence in order.

Performs a side effecting function on each element of the specifying sequence in order.

Attributes

Inherited from:
SeqSpec
def ssForeachPairTail[U](f: (Double, Double) => U): Unit

Attributes

Inherited from:
SeqSpecDbl2
def ssIForeach[U](initIndex: Int)(f: (Int, Pt2) => U): Unit

Index with foreach on the data elements. Performs a side effecting function on the index and each element of the data sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Index with foreach on the data elements. Performs a side effecting function on the index and each element of the data sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Attributes

Inherited from:
SeqSpec
def ssIForeach[U](f: (Int, Pt2) => Any): Unit

Index with foreach on the the specifying sequence elements. Performs a side effecting function on the index and each element of the specifying sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Index with foreach on the the specifying sequence elements. Performs a side effecting function on the index and each element of the specifying sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Attributes

Inherited from:
SeqSpec
override def ssIndex(index: Int): Pt2

Accesses the specifying sequence element by a 0 based index.

Accesses the specifying sequence element by a 0 based index.

Attributes

Definition Classes
Inherited from:
SeqSpecDbl2
def ssInnerForeach[U](f: Pt2 => U): Unit

Foreachs over the inner of the specifying sequence, excludes the first and last element. Performs a side effecting function on each element of the tail of the specifying sequence in order.

Foreachs over the inner of the specifying sequence, excludes the first and last element. Performs a side effecting function on each element of the tail of the specifying sequence in order.

Attributes

Inherited from:
SeqSpec
def ssLast: Pt2

Last element of the specifying sequence.

Last element of the specifying sequence.

Attributes

Inherited from:
SeqSpec
override def ssLength: Int

The number of product elements in this collection. For example in a [[PolygonImp], this is the number of Pt2s in the Polygon

The number of product elements in this collection. For example in a [[PolygonImp], this is the number of Pt2s in the Polygon

Attributes

Definition Classes
Inherited from:
SeqSpecValueN
def ssMap[B, ArrB <: Arr[B]](f: Pt2 => B)(implicit ev: BuilderArrMap[B, ArrB]): ArrB

Specialised map to an immutable Arr of B. For Sequ dataMap is the same as map, but for other structures it will be different, for example a PolygonLike will map to another PolygonLike.

Specialised map to an immutable Arr of B. For Sequ dataMap is the same as map, but for other structures it will be different, for example a PolygonLike will map to another PolygonLike.

Attributes

Inherited from:
SeqSpec
def ssReverseForeach[U](f: Pt2 => U): Unit

Performs a side effecting function on each element of the specifying-sequence in reverse order. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users.

Performs a side effecting function on each element of the specifying-sequence in reverse order. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users.

Attributes

Inherited from:
SeqSpec
def ssTailFold[B](initial: B)(f: (B, Pt2) => B): B

FoldLeft over the tail of the specifying sequence.

FoldLeft over the tail of the specifying sequence.

Attributes

Inherited from:
SeqSpec
def ssTailForeach[U](f: Pt2 => U): Unit

Foreachs over the tail of the specifying sequence. Performs a side effecting function on each element of the tail of the specifying sequence in order.

Foreachs over the tail of the specifying sequence. Performs a side effecting function on each element of the tail of the specifying sequence in order.

Attributes

Inherited from:
SeqSpec
override def tail: ThisT

This line path with the first vertex removed. This can be useful for borders where the end points may show up in multiple line paths and therefore sometimes need to be excluded when appending.

This line path with the first vertex removed. This can be useful for borders where the end points may show up in multiple line paths and therefore sometimes need to be excluded when appending.

Attributes

Definition Classes
Inherited from:
LinePathDblN
override def toPolygon: PolygonT

Closes this LinePathLike into a PolygonLike by adding a LineSegLike from the last vertex to the first.

Closes this LinePathLike into a PolygonLike by adding a LineSegLike from the last vertex to the first.

Attributes

Definition Classes
Inherited from:
LinePathDblN
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
SeqLike -> Any
Inherited from:
SeqLike

Maps the 1st Double of each element to a new Array[Double], copies the 2nd elements.

Maps the 1st Double of each element to a new Array[Double], copies the 2nd elements.

Attributes

Inherited from:
SeqSpecDbl2

Maps the 2nd Double of each element with the parameter function to a new Array[Double], copies the 1st Double of each element.

Maps the 2nd Double of each element with the parameter function to a new Array[Double], copies the 1st Double of each element.

Attributes

Inherited from:
SeqSpecDbl2
def unsafeMap(f: Pt2 => Pt2): Array[Double]

Maps the 2 Doubles of each element to a new Array[Double].

Maps the 2 Doubles of each element to a new Array[Double].

Attributes

Inherited from:
SeqSpecDbl2

Reverses the order of the elements in a new Array[Double] which is returned.

Reverses the order of the elements in a new Array[Double] which is returned.

Attributes

Inherited from:
SeqSpecDblN
def unsafeSameSize(length: Int): ThisT

Attributes

Inherited from:
SeqLikeDblN
final override def |++-|(operand: ThisT): PolygonT

Appends the init of another LinePathLike of this type. Returns a PolygonLike.

Appends the init of another LinePathLike of this type. Returns a PolygonLike.

Attributes

Definition Classes
Inherited from:
LinePathDblN
final override def |++<|(operand: ThisT): PolygonT

Appends the reverse vertex order of another LinePathLike of this type. Returns a new extended closed PolygonLike.

Appends the reverse vertex order of another LinePathLike of this type. Returns a new extended closed PolygonLike.

Attributes

Definition Classes
Inherited from:
LinePathDblN
final override def |++|(operand: ThisT): PolygonT

Appends another LinePathLike of this type. Returns a PolygonLike. ++ indicates append a sequence. The enclosing lines indicate to close the polygon.

Appends another LinePathLike of this type. Returns a PolygonLike. ++ indicates append a sequence. The enclosing lines indicate to close the polygon.

Attributes

Definition Classes
Inherited from:
LinePathDblN
final override def |+|[AA >: Pt2](op: Pt2): PolygonT

Appends a single vertex of type A. Returns a PolygonLike.

Appends a single vertex of type A. Returns a PolygonLike.

Attributes

Definition Classes
Inherited from:
LinePathDblN

Concrete fields