Rectangle

trait Rectangle extends ShapeCentred with Polygon4Plus

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

Companion
object
trait Polygon
trait Approx[Double]
trait Equals
trait Shape
trait Fillable
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any
class PhiRect
class PhiRectY
trait Rect
class RectImp
class Sqlign
trait RectS2S4
class SquareImp
trait Square

Value members

Abstract methods

def width1: Double

length from v1 to v2 and v3 to v4.

length from v1 to v2 and v3 to v4.

def width2: Double

length from v2 to v3 and v03 to v1.

length from v2 to v3 and v03 to v1.

Concrete methods

override def attribs: Arr[XANumeric]
Definition Classes
@inline
override def draw(lineColour: Colour, lineWidth: Double): RectangleDraw
Definition Classes
override def fill(fillColour: Colour): RectangleFill
Definition Classes
override def fillInt(intValue: Int): RectangleFill
Definition Classes
final override def foreachVert[U](f: Pt2 => U): Unit
Definition Classes
override def foreachVertPairTail[U](f: (Double, Double) => U): Unit
Definition Classes
final override def foreachVertTail[U](f: Pt2 => U): Unit
Definition Classes
override def negX: Rectangle

Mirror, reflection 2D geometric transformation across the X axis on a Rectangle, returns a Rectangle.

Mirror, reflection 2D geometric transformation across the X axis on a Rectangle, returns a Rectangle.

Definition Classes
override def negY: Rectangle

Mirror, reflection 2D geometric transformation across the X axis on a Rectangle, returns a Rectangle.

Mirror, reflection 2D geometric transformation across the X axis on a Rectangle, returns a Rectangle.

Definition Classes
override def prolign(matrix: ProlignMatrix): Rectangle
Definition Classes
override def reflect(lineLike: LineLike): Rectangle
Definition Classes
override def rotate(angle: AngleVec): Rectangle
Definition Classes
override def rotate180: Rectangle
Definition Classes
override def rotate270: Rectangle
Definition Classes
override def rotate90: Rectangle
Definition Classes
override def scale(operand: Double): Rectangle

Uniform scaling 2D geometric transformation on a Rectangle returns a Rectangle.

Uniform scaling 2D geometric transformation on a Rectangle returns a Rectangle.

Definition Classes
override def scaleXY(xOperand: Double, yOperand: Double): Rectangle
Definition Classes
override def slate(offset: Vec2Like): Rectangle

Translate 2D geometric transformation on a Rectangle returns a Rectangle.

Translate 2D geometric transformation on a Rectangle returns a Rectangle.

Definition Classes
override def slateXY(xDelta: Double, yDelta: Double): Rectangle

Translate 2D geometric transformation on a Rectangle returns a Rectangle.

Translate 2D geometric transformation on a Rectangle returns a Rectangle.

Definition Classes
@inline
final override def vert(index: Int): Pt2
Definition Classes
override def vertsArray: Array[Double]
Definition Classes
final override def vertsArrayX: Array[Double]
Definition Classes
final override def vertsArrayY: Array[Double]
Definition Classes
final override def vertsNum: Int
Definition Classes
override def xVert(index: Int): Double
Definition Classes
override def yVert(index: Int): Double
Definition Classes

Inherited methods

def active(id: Any): PolygonActive
Inherited from
Polygon
def activeChildren(id: Any, children: GraphicElems): PolygonCompound
Inherited from
Polygon
override def approx(that: Any, precision: Double): Boolean
Definition Classes
Inherited from
Polygon
Inherited from
BoundedElem
@inline
final def boundCen: Pt2

The centre of the bounding rectangle. consider also using cenDefault.

The centre of the bounding rectangle. consider also using cenDefault.

Inherited from
BoundedElem
def boundingHeight: Double
Inherited from
BoundedElem

Currently throws, not sure if that is the correct behaviour. Creates a bounding rectangle for a collection of 2d points

Currently throws, not sure if that is the correct behaviour. Creates a bounding rectangle for a collection of 2d points

Definition Classes
Inherited from
Polygon
def boundingWidth: Double

The width of the BoundingRect of this object.

The width of the BoundingRect of this object.

Inherited from
BoundedElem
Inherited from
BoundedElem
def canEqual(that: Any): Boolean

This canEqual override allow the comparison of Shapes.

This canEqual override allow the comparison of Shapes.

Inherited from
Shape
def cen: Pt2

The centre of this geometric / graphical element. The centre will not change if the object type is capable of being rotated and is rotated. The cenDefault on other bounded elements may move relative to points on the object when the object is rotated.

The centre of this geometric / graphical element. The centre will not change if the object type is capable of being rotated and is rotated. The cenDefault on other bounded elements may move relative to points on the object when the object is rotated.

Inherited from
WithCentre
final override def cenDefault: Pt2

The default centre of this object is the centre. The centre will not change if the object type is capable of being rotated and is rotated.

The default centre of this object is the centre. The centre will not change if the object type is capable of being rotated and is rotated.

Definition Classes
Inherited from
CentredElem
def cenPt: Pt2

The centre point of this Polygon. The default centre for Polygons is the centre of the bounding rectangle.

The centre point of this Polygon. The default centre for Polygons is the centre of the bounding rectangle.

Inherited from
Polygon
def cenVec: Vec2
Inherited from
Polygon
def cenX: Double

The X component of the centre.

The X component of the centre.

Inherited from
WithCentre
def cenY: Double

The Y component of the centre.

The Y component of the centre.

Inherited from
WithCentre
def drawActive(lineColour: Colour, lineWidth: Double, pointerID: Any): PolygonCompound
Inherited from
Polygon
def fillActive(fillColour: Colour, pointerID: Any): PolygonCompound
Inherited from
Polygon
def fillActiveDraw(fillColour: Colour, pointerID: Any, lineColour: Colour, lineWidth: Double): PolygonCompound

Creates a PolygonCompound graphic that is active with a simple 1 colour fill and has a draw graphic for the Polygon. The default values for the draw area line width of 2 and a colour of Black.

Creates a PolygonCompound graphic that is active with a simple 1 colour fill and has a draw graphic for the Polygon. The default values for the draw area line width of 2 and a colour of Black.

Inherited from
Polygon
override def fillDraw(fillColour: Colour, lineColour: Colour, lineWidth: Double): PolygonCompound
Definition Classes
Inherited from
Polygon
def fillDrawActive(fillColour: Colour, pointerID: Any, lineWidth: Double, lineColour: Colour): PolygonCompound
Inherited from
Polygon
def fillDrawText(fillColour: Colour, str: String, fontSize: Int, lineColour: Colour, lineWidth: Double): PolygonCompound
Inherited from
Polygon
def fillDrawTextActive(fillColour: Colour, pointerID: Any, str: String, fontSize: Int, lineWidth: Double, lineColour: Colour, align: TextAlign): PolygonCompound
Inherited from
Polygon
def fillText(fillColour: Colour, str: String, fontSize: Int, textColour: Colour, layer: Int): PolygonCompound
Inherited from
Polygon
def fillTextActive(fillColour: Colour, pointerEv: Any, str: String, fontSize: Int, fontColour: Colour, align: TextAlign): PolygonCompound
Inherited from
Polygon
def insVert(insertionPoint: Int, newVec: Pt2): Polygon

Insert vertex.

Insert vertex.

Inherited from
Polygon
def insVerts(insertionPoint: Int, newVecs: Pt2*): Polygon

Insert vertices before the specified insertion vertex.

Insert vertices before the specified insertion vertex.

Inherited from
Polygon
def parentFillText(pointerID: Any, fillColour: Colour, str: String, fontSize: Int, textColour: Colour, align: TextAlign): PolygonCompound
Inherited from
Polygon
@inline
def polygonMap(f: Pt2 => Pt2): Polygon
Inherited from
Polygon
def precisionDefault: Double
Inherited from
Polygon
def ptInside(pt: Pt2): Boolean

Determines if the parameter point lies inside this Polygon.

Determines if the parameter point lies inside this Polygon.

Inherited from
Polygon
def sd1: LineSeg

Polygon side 1 from the last vertex to Vertex 1.

Polygon side 1 from the last vertex to Vertex 1.

Inherited from
Polygon3Plus
def sd1Cen: Pt2

The centre or half way point of side 1 of this polygon. Side 1 starts at the vLast vertex and ends at the v1 vertex. This can be thought of as vertex 0.5.

The centre or half way point of side 1 of this polygon. Side 1 starts at the vLast vertex and ends at the v1 vertex. This can be thought of as vertex 0.5.

Inherited from
Polygon3Plus
def sd1CenX: Double

The X component of the centre or half way point of side 1 of this polygon. Side 1 starts at the vLast vertex and ends at the v1 vertex. This can be thought of as vertex 0.5.

The X component of the centre or half way point of side 1 of this polygon. Side 1 starts at the vLast vertex and ends at the v1 vertex. This can be thought of as vertex 0.5.

Inherited from
Polygon3Plus
def sd1CenY: Double

The Y component of the centre or half way point of side 1 of this polygon. Side 1 starts at the vLast vertex and ends at the v1 vertex. This can be thought of as vertex 0.5.

The Y component of the centre or half way point of side 1 of this polygon. Side 1 starts at the vLast vertex and ends at the v1 vertex. This can be thought of as vertex 0.5.

Inherited from
Polygon3Plus
def sd2: LineSeg

Polygon side 2 from vertex 1 to vertex 2.

Polygon side 2 from vertex 1 to vertex 2.

Inherited from
Polygon3Plus
def sd2Cen: Pt2

The centre or half way point of side 2 of this polygon. Side 2 starts at the v1 vertex and ends at the v2 vertex. This can be thought of as vertex 1.5

The centre or half way point of side 2 of this polygon. Side 2 starts at the v1 vertex and ends at the v2 vertex. This can be thought of as vertex 1.5

Inherited from
Polygon3Plus
def sd2CenX: Double

The X component of the centre or half way point of side 2 of this polygon. Side 2 starts at the v1 vertex and ends at the v1 vertex. This can be thought of as vertex 1.5.

The X component of the centre or half way point of side 2 of this polygon. Side 2 starts at the v1 vertex and ends at the v1 vertex. This can be thought of as vertex 1.5.

Inherited from
Polygon3Plus
def sd2CenY: Double

The Y component of the centre or half way point of side 3 of this polygon. Side 2 starts at the v1 vertex and ends at the v2 vertex. This can be thought of as vertex 1.5.

The Y component of the centre or half way point of side 3 of this polygon. Side 2 starts at the v1 vertex and ends at the v2 vertex. This can be thought of as vertex 1.5.

Inherited from
Polygon3Plus
def sd3: LineSeg

Polygon side 3 from v2 to v3.

Polygon side 3 from v2 to v3.

Inherited from
Polygon3Plus
def sd3Cen: Pt2

The centre or half way point of side 3 of this polygon. Side 3 starts at the v2 vertex and ends at the v3 vertex. This can be thought of as vertex 2.5.

The centre or half way point of side 3 of this polygon. Side 3 starts at the v2 vertex and ends at the v3 vertex. This can be thought of as vertex 2.5.

Inherited from
Polygon3Plus
def sd3CenX: Double

The X component of the centre or half way point of side 3 of this polygon. Side 3 starts at the v2 vertex and ends at the v3 vertex. This can be thought of as vertex 2.5.

The X component of the centre or half way point of side 3 of this polygon. Side 3 starts at the v2 vertex and ends at the v3 vertex. This can be thought of as vertex 2.5.

Inherited from
Polygon3Plus
def sd3CenY: Double

The Y component of the centre or half way point of side 3 of this polygon. Side 3 starts at the v2 vertex and ends at the v3 vertex. This can be thought of as vertex 2.5.

The Y component of the centre or half way point of side 3 of this polygon. Side 3 starts at the v2 vertex and ends at the v3 vertex. This can be thought of as vertex 2.5.

Inherited from
Polygon3Plus
def sd4Cen: Pt2

The centre or half way point of side 4 of this polygon. Side 4 starts at the v3 vertex and ends at the v4 vertex. This can be thought of as vertex 3.5.

The centre or half way point of side 4 of this polygon. Side 4 starts at the v3 vertex and ends at the v4 vertex. This can be thought of as vertex 3.5.

Inherited from
Polygon4Plus
def sd4CenX: Double

The X component of the centre or half way point of side 4 of this polygon. Side 4 starts at the v3 vertex and ends at the v4 vertex. This can be thought of as vertex 3.5.

The X component of the centre or half way point of side 4 of this polygon. Side 4 starts at the v3 vertex and ends at the v4 vertex. This can be thought of as vertex 3.5.

Inherited from
Polygon4Plus
def sd4CenY: Double

The Y component of the centre or half way point of side 4 of this polygon. Side 4 starts at the v3 vertex and ends at the v4 vertex. This can be thought of as vertex 3.5.

The Y component of the centre or half way point of side 4 of this polygon. Side 4 starts at the v3 vertex and ends at the v4 vertex. This can be thought of as vertex 3.5.

Inherited from
Polygon4Plus
override def shearX(operand: Double): Polygon

Shear 2D geometric transformation along the X Axis on a Polygon, returns a Polygon. The return type will be narrowed in some but not all sub classes and traits.

Shear 2D geometric transformation along the X Axis on a Polygon, returns a Polygon. The return type will be narrowed in some but not all sub classes and traits.

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

Shear 2D geometric transformation along the Y Axis on a Polygon, returns a Polygon. The return type will be narrowed in sub classes and traits.

Shear 2D geometric transformation along the Y Axis on a Polygon, returns a Polygon. The return type will be narrowed in sub classes and traits.

Definition Classes
Inherited from
Polygon
@inline
def side(index: Int): LineSeg
Inherited from
Polygon
def sideForeach(f: LineSeg => Unit): Unit

foreachs over the sides or edges of the Polygon These are of type LineSeg.

foreachs over the sides or edges of the Polygon These are of type LineSeg.

Inherited from
Polygon
def sideIForeach(initCount: Int)(f: (LineSeg, Int) => Unit): Unit

foreachs over the sides or edges of the Polygon These are of type LineSeg.

foreachs over the sides or edges of the Polygon These are of type LineSeg.

Inherited from
Polygon
def sidesIFlatMap[AA <: ArrImut[_]](initCount: Int)(f: (LineSeg, Int) => AA)(implicit build: ArrTFlatBuilder[AA]): AA

maps with a integer counter over the sides or edges of the Polygon These are of type LineSeg.

maps with a integer counter over the sides or edges of the Polygon These are of type LineSeg.

Inherited from
Polygon
def sidesIMap[A, AA <: ArrImut[A]](initCount: Int)(f: (LineSeg, Int) => A)(implicit build: ArrTBuilder[A, AA]): AA

maps with a integer counter over the sides or edges of the Polygon These are of type LineSeg.

maps with a integer counter over the sides or edges of the Polygon These are of type LineSeg.

Inherited from
Polygon
def sidesMap[A, AA <: ArrImut[A]](f: LineSeg => A)(implicit build: ArrTBuilder[A, AA]): AA

maps over the sides or edges of the Polygon These are of type LineSeg.

maps over the sides or edges of the Polygon These are of type LineSeg.

Inherited from
Polygon
def sline(index: Int): LineSeg
Inherited from
Polygon
Inherited from
BoundedElem

Converts this closed Polygon to LineSegs. The LineSegs collection is empty of there are less than 2 vertices.

Converts this closed Polygon to LineSegs. The LineSegs collection is empty of there are less than 2 vertices.

Inherited from
Polygon
Inherited from
BoundedElem
def v1: Pt2

The 1st vertex, will throw on a 0 vertices polygon.

The 1st vertex, will throw on a 0 vertices polygon.

Inherited from
Polygon
def v1x: Double

The X component of the 1st vertex, will throw on a 0 vertices polygon.

The X component of the 1st vertex, will throw on a 0 vertices polygon.

Inherited from
Polygon
def v1y: Double

The Y component of the 1st vertex, will throw on a 0 vertices polygon.

The Y component of the 1st vertex, will throw on a 0 vertices polygon.

Inherited from
Polygon
def v2: Pt2

The 2nd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The 2nd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon3Plus
def v2x: Double

The X component of the 2nd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The X component of the 2nd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon3Plus
def v2y: Double

The Y component of the 2nd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The Y component of the 2nd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon3Plus
def v3: Pt2

The 3rd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The 3rd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon3Plus
def v3x: Double

The X component of the 3rd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The X component of the 3rd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon3Plus
def v3y: Double

The Y component of the 3rd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The Y component of the 3rd Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon3Plus
def v4: Pt2

The 4th Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The 4th Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon4Plus
def v4x: Double

The X component of the 4th Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The X component of the 4th Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon4Plus
def v4y: Double

The Y component of the 4th Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

The Y component of the 4th Vertex. The default convention is for the vertices to be numbered in a clockwise direction with the 1st vertex immediately clockwise from 12 o'clock.

Inherited from
Polygon4Plus
override def vLast: Pt2

The last vertex.

The last vertex.

Definition Classes
Inherited from
Polygon3Plus
def vertsFoldLeft[B](initial: B)(f: (B, Pt2) => B): B
Inherited from
Polygon
def vertsIFlatMap[BB <: ArrImut[_]](iInit: Int)(f: (Pt2, Int) => BB)(implicit build: ArrTFlatBuilder[BB]): BB

flatMap with index to an immutable Arr.

flatMap with index to an immutable Arr.

Inherited from
Polygon
def vertsMap[A, ArrT <: ArrImut[A]](f: Pt2 => A)(implicit build: ArrTBuilder[A, ArrT]): ArrT
Inherited from
Polygon
def vertsTrans(f: Pt2 => Pt2): Polygon

A function that takes a 2D geometric transformation on a Pt2 as a parameter and performs the transformation on all the vertices returning a new transformed Polygon

A function that takes a 2D geometric transformation on a Pt2 as a parameter and performs the transformation on all the vertices returning a new transformed Polygon

Inherited from
Polygon