GeomElem

ostrat.geom.GeomElem
See theGeomElem companion object
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.

Attributes

Companion
object
Graph
Supertypes
class Any
Known subtypes
trait AxisFree
class CArcDraw
class Circle
class EllipseImp
class ShapeGen
class TriangleEqui
trait BoundedElem
trait CentredElem
trait RectGraphic
trait RectCompound
object GridGraphic1
trait RectDraw
class RectDrawImp
trait RectFill
class RectFillImp
trait Rect
object NoBounds
class PhiRect
class PhiRectY
class RectImp
class Sqlign
trait ShapeCentred
trait Ellipse
trait Ellipselign
trait HexReg
class HexRegImp
trait Hexlign
class HexParrX
class HexParrY
trait Rectangle
trait PhiRectangle
class RectangleImp
trait Square
class SquareImp
class CircleActive
class CircleDraw
class CircleFill
trait EllipseDraw
trait EllipseFill
trait PolygonDraw
trait PolygonFill
class TriangleFill
trait ShapeGraphic
trait ShapeDraw
trait ShapeFill
class LineSeg
class LineSegArr
class LinesDraw
trait Polygon
trait Polygon3Plus
trait Polygon4Plus
trait Polygon5Plus
trait Polygon6Plus
class DoDeclign
trait Triangle
class TriangleImp
trait TriangleIsos
class PolygonGen
trait Shape
trait Drawable
trait CurveSeg
class Bezier
trait EArc
class EArcImp
trait EArclign
class CArc
class EArclignImp
trait Fillable
trait EllipseBased
trait GraphicElem
trait CanvElem
class BezierDraw
trait EArcDraw
class EArcDrawImp
class LinePathDraw
class LineSegDraw
trait TextGraphic
class TextFixed
class Textlign
trait CurveSegDraw
class TextOutline
trait NoCanvElem
trait LineLike
trait Line
class XLine
class XParallel
object XAxis
object YAxis
trait XorYAxis
class YLine
class YParallel
class Ray
class CurveTail
class LinePath
class Pt2Arr
class ShapeGenOld
Show all

Members list

Value members

Abstract methods

def negX: GeomElem

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

def negY: GeomElem

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

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

def reflect(lineLike: LineLike): GeomElem

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

def rotate(angle: AngleVec): GeomElem

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

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

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

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

def scale(operand: Double): GeomElem

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

def scaleXY(xOperand: Double, yOperand: Double): GeomElem

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

def shearX(operand: Double): GeomElem

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

def shearY(operand: Double): GeomElem

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

def slateXY(xDelta: Double, yDelta: Double): GeomElem

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