PolygonNode

open class PolygonNode(polygon: Polygon, var style: ShapeStyle = ShapeStyle.POLYGON, var tags: Set<String> = emptySet()) : Polygon, CompositeNode

A scene-graph leaf that is a Polygon: the loop's geometry carrying the concrete style it renders with, plus optional tags.

Construction reuses polygon's vertex list by reference, so the leaf carries the same geometry at full Double precision. Everything a Polygon offers is inherited, and every operation typed against Polygon accepts the leaf as-is — the shape-preserving operations, the coerce pair included, return through copy and come back as the leaf, style and tags riding along; everything else returns plain shapes.

Parameters

polygon

The geometry to decorate; its vertex list is kept by reference.

style

The concrete paint; the polygon default when omitted.

tags

Free-form tokens riding the leaf; empty by default.

Constructors

Link copied to clipboard
constructor(polygon: Polygon, style: ShapeStyle = ShapeStyle.POLYGON, tags: Set<String> = emptySet())

Builds the leaf around polygon's vertices.

constructor(node: PolygonNode, style: ShapeStyle = node.style, tags: Set<String> = node.tags)

Builds the leaf as a copy of node: the same geometry, and node's own style and tags unless either is overridden.

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override var style: ShapeStyle
Link copied to clipboard
open override var tags: Set<String>
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
open override fun copy(polygon: Polygon): PolygonNode

Returns a PolygonNode around polygon, carrying this leaf's style and tags.

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean

Rounded, style-inclusive identity: equal when the geometry matches at the SCALE quantum and style and tags match exactly.

Link copied to clipboard
open override fun hashCode(): Int

Returns the geometry hash combined with style's and tags', consistent with equals.

Link copied to clipboard
operator fun ShapeNode.times(versor: Versor): ShapeNode

node * Versor => ShapeNode
Returns this leaf with versor's motion applied to its geometry — style and tags untouched.

Link copied to clipboard
open override fun toString(): String

Returns the raw geometry with the style and tags — full stored precision, no rounding.

Link copied to clipboard