RegularPolygon

Represents a transformable regular polygon in a two-dimensional Euclidean space.

Implementations that use default-implemented members of this interface must make sure that the properties center, orientation, sideLength, sideCount and the copy method are independent of other members and the computational complexity of these members is trivial.

Inheritors

Properties

Link copied to clipboard
open override val area: Float

Returns the area of this shape.

Link copied to clipboard
abstract val center: Vector2F

Returns the center of this regular polygon.

Link copied to clipboard
open override val circumradius: Float

Returns the circumradius of this shape.

Link copied to clipboard
open override val exteriorAngle: AngleF

Returns the exterior angle of this shape.

Link copied to clipboard
open override val inradius: Float

Returns the inradius of this shape.

Link copied to clipboard
open override val interiorAngle: AngleF

Returns the interior angle of this shape.

Link copied to clipboard
abstract val orientation: ComplexF

Returns the orientation of this object in reference to the origin of ComplexF.ONE.

Link copied to clipboard
open override val perimeter: Float

Returns the perimeter of this shape.

Link copied to clipboard

Returns the read-only list of points of this regular polygon.

Link copied to clipboard
open override val position: Vector2F

Returns the position of this object in reference to the origin of Vector2F.ZERO.

Link copied to clipboard
abstract val sideCount: Int

Returns the side count of this shape.

Link copied to clipboard
abstract val sideLength: Float

Returns the side length of this shape.

Functions

Link copied to clipboard
open fun closestPointTo(point: Vector2F): Vector2F

Returns the closest point on this regular polygon to the given point.

Link copied to clipboard
open operator fun component1(): Vector2F

Returns the center of this regular polygon.

Link copied to clipboard
open operator fun component2(): ComplexF

Returns the orientation of this regular polygon.

Link copied to clipboard
open operator fun component3(): Float

Returns the sideLength of this regular polygon.

Link copied to clipboard
open operator fun component4(): Int

Returns the sideCount of this regular polygon.

Link copied to clipboard
open operator fun contains(point: Vector2F): Boolean

Returns true if this regular polygon contains the given point.

Link copied to clipboard
abstract fun copy(center: Vector2F = this.center, orientation: ComplexF = this.orientation, sideLength: Float = this.sideLength, sideCount: Int = this.sideCount): RegularPolygon

Returns a copy of this instance with specified properties changed.

Link copied to clipboard
open override fun dilatedBy(point: Vector2F, factor: Float): RegularPolygon

Returns a copy of this object that is dilated around the point by a factor.

Link copied to clipboard
open fun intersects(ray: Ray): Boolean

Returns true if this regular polygon intersects the given ray.

Link copied to clipboard
open override fun movedBy(displacement: Vector2F): RegularPolygon

Returns a copy of this object that is moved by a displacement.

Link copied to clipboard
open override fun movedTo(position: Vector2F): RegularPolygon

Returns a copy of this object that is moved to the position.

Link copied to clipboard

Creates an iterator over the points of this regular polygon.

Link copied to clipboard
open override fun rotatedAroundPointBy(point: Vector2F, rotation: AngleF): RegularPolygon
open override fun rotatedAroundPointBy(point: Vector2F, rotation: ComplexF): RegularPolygon

Returns a copy of this object that is rotated around the point by a rotation.

Link copied to clipboard
open override fun rotatedAroundPointTo(point: Vector2F, orientation: AngleF): RegularPolygon
open override fun rotatedAroundPointTo(point: Vector2F, orientation: ComplexF): RegularPolygon

Returns a copy of this object that is rotated around the point to the orientation.

Link copied to clipboard
open override fun rotatedBy(rotation: AngleF): RegularPolygon
open override fun rotatedBy(rotation: ComplexF): RegularPolygon

Returns a copy of this object that is rotated by a rotation.

Link copied to clipboard
open override fun rotatedTo(orientation: AngleF): RegularPolygon
open override fun rotatedTo(orientation: ComplexF): RegularPolygon

Returns a copy of this object that is rotated to the orientation.

Link copied to clipboard
open override fun scaledBy(factor: Float): RegularPolygon

Returns a copy of this object that is scaled by a factor.

Link copied to clipboard

Creates a new instance of RegularTriangle from this regular polygon if the sideCount is equal to 3, otherwise returns null.

Link copied to clipboard
open fun toSquareOrNull(): Square?

Creates a new instance of Square from this regular polygon if the sideCount is equal to 4, otherwise returns null.

Link copied to clipboard
open override fun transformedBy(displacement: Vector2F, rotation: AngleF): RegularPolygon
open override fun transformedBy(displacement: Vector2F, rotation: ComplexF): RegularPolygon

Returns a copy of this object that is moved by a displacement and rotated by a rotation.

open override fun transformedBy(displacement: Vector2F, rotation: AngleF, scaleFactor: Float): RegularPolygon
open override fun transformedBy(displacement: Vector2F, rotation: ComplexF, scaleFactor: Float): RegularPolygon

Returns a copy of this object that is moved by a displacement, rotated by a rotation, and scaled by a scaleFactor.

Link copied to clipboard
open override fun transformedTo(position: Vector2F, orientation: AngleF): RegularPolygon
open override fun transformedTo(position: Vector2F, orientation: ComplexF): RegularPolygon

Returns a copy of this object that is moved to the position and rotated to the orientation.