ShapeGen

class ShapeGen(val unsafeArray: Array[CurveSeg]) extends Shape with AxisFree

The new version of ShapeGen. Will prioritise easy and simplicity of functionality over efficiency. A generalised implementation of a Shape. A closed sequence of curve segments.

Companion
object
trait AxisFree
trait Shape
trait Fillable
trait Drawable
trait GeomElem
class Object
trait Matchable
class Any

Type members

Types

override

Value members

Concrete methods

override
Definition Classes

The bounding Rectangle provides an initial exclusion test as to whether the pointer is inside the polygon / shape

The bounding Rectangle provides an initial exclusion test as to whether the pointer is inside the polygon / shape

Definition Classes
override
def draw(lineColour: Colour, lineWidth: Double): ShapeDraw
Definition Classes
override
def fill(fillColour: Colour): ShapeFill
Definition Classes
override
def fillDraw(fillColour: Colour, lineColour: Colour, lineWidth: Double): GraphicElem
Definition Classes
override
def fillInt(intValue: Int): ShapeFill
Definition Classes
override

2D Transformation using a ProlignMatrix on a Shape, returns a Shape. The Return type will be narrowed in sub traits / classes.

2D Transformation using a ProlignMatrix on a Shape, returns a Shape. The Return type will be narrowed in sub traits / classes.

Definition Classes
override
def reflect(lineLike: LineLike): ShapeGen

Reflect 2D geometric transformation across a line, line segment or ray on a Shape, returns a Shape. The Return type will be narrowed in sub traits / classes.

Reflect 2D geometric transformation across a line, line segment or ray on a Shape, returns a Shape. The Return type will be narrowed in sub traits / classes.

Definition Classes
override
def rotate(angle: AngleVec): ShapeGen

Rotation 2D geometric transformation on a ShapeGen taking the rotation as a scalar measured in radians, returns a Shape. The Return type will be narrowed in sub traits / classes.

Rotation 2D geometric transformation on a ShapeGen taking the rotation as a scalar measured in radians, returns a Shape. The Return type will be narrowed in sub traits / classes.

Definition Classes
override
def scale(operand: Double): ShapeGen

Uniform scaling 2D geometric transformation on a ShapeGen returns a Shape. The Return type will be narrowed in sub traits / classes. Use the xyScale method for differential scaling on the X and Y axes.

Uniform scaling 2D geometric transformation on a ShapeGen returns a Shape. The Return type will be narrowed in sub traits / classes. Use the xyScale method for differential scaling on the X and Y axes.

Definition Classes
override
def scaleXY(xOperand: Double, yOperand: Double): ShapeGen

XY scaling 2D geometric transformation on a ShapeGen returns a Shape. This allows different scaling factors across X and Y dimensions. The return type will be narrowed in sub classes and traits.

XY scaling 2D geometric transformation on a ShapeGen returns a Shape. This allows different scaling factors across X and Y dimensions. The return type will be narrowed in sub classes and traits.

Definition Classes
override
def shearX(operand: Double): ShapeGen

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

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

Definition Classes
override
def shearY(operand: Double): ShapeGen

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

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

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

Translate 2D geometric transformation on a ShapeGen returns a Shape. The Return type will be narrowed in sub traits / classes.

Translate 2D geometric transformation on a ShapeGen returns a Shape. The Return type will be narrowed in sub traits / classes.

Definition Classes

Inherited methods

Inherited from
BoundedElem
@inline
final

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

If the geometric element has a defined centre then the cenDefault uses that, else it defaults to the centre of the bounding rectangle.

If the geometric element has a defined centre then the cenDefault uses that, else it defaults to the centre of the bounding rectangle.

Inherited from
BoundedElem
override
def negX: ThisT
Definition Classes
Inherited from
AxisFree
override
def negY: ThisT
Definition Classes
Inherited from
AxisFree
override
Definition Classes
Inherited from
AxisFree
override
Definition Classes
Inherited from
AxisFree
override
Definition Classes
Inherited from
AxisFree
Inherited from
BoundedElem
Inherited from
BoundedElem

Concrete fields

val unsafeArray: Array[CurveSeg]