`data class LinearRing3D: AbstractSurface3D, Tolerable`

Linear ring of a list of vertices. The linear ring is not required to be planar.

Fields

Name Description
`val vertices: List<Vector3D>`

vertices for constructing the linear ring

`val tolerance: Double`

tolerable threshold value

`val affineSequence: AffineSequence3D`

List of affine transformation matrices to move and rotate the geometric object.

## Constructors

### <init>

`constructor(vertices: List<Vector3D>, tolerance: Double, affineSequence: AffineSequence3D)`

Linear ring of a list of vertices. The linear ring is not required to be planar.

Parameters

Name Description
`vertices: List<Vector3D>`

vertices for constructing the linear ring

`tolerance: Double`
`affineSequence: AffineSequence3D`

## Methods

### isPlanar

`fun isPlanar(): Boolean`

Returns true if the vertices are placed in a plane

ReturnValue

Name Description
`Boolean`

### calculatePolygonsLocalCS

`fun calculatePolygonsLocalCS(): Result, Exception><List<Polygon3D>, Exception>`

Calculates the polygons for the respective surface geometry within the local coordinate system of the surface.

ReturnValue

Name Description
`Result, Exception><List<Polygon3D>, Exception>`

### accept

`fun accept(visitor: Geometry3DVisitor)`

Accepting function so that a geometry visitor can pass by.

Parameters

Name Description
`visitor: Geometry3DVisitor`

ReturnValue

Name Description
`Unit`

## CompanionObject

### LinearRing3D

`data class LinearRing3D: AbstractSurface3D, Tolerable`

Linear ring of a list of vertices. The linear ring is not required to be planar.

Fields

Name Description
`val UNIT: LinearRing3D`

### Methods

#### of

`fun of(vararg vertices: Vector3D, tolerance: Double): LinearRing3D`

Creates a linear ring based on the provided vertices.

Parameters

Name Description
`vararg vertices: Vector3D`
`tolerance: Double`

ReturnValue

Name Description
`LinearRing3D`

#### of

`fun of(leftVertices: List<Vector3D>, rightVertices: List<Vector3D>, tolerance: Double): List<LinearRing3D>`

Creates multiple linear rings from two lists of vertices leftVertices and rightVertices. A list of linear rings are created by iterating over both lists jointly.

Parameters

Name Description
`leftVertices: List<Vector3D>`

left vertices for the linear rings construction

`rightVertices: List<Vector3D>`

right vertices for the linear rings construction

`tolerance: Double`

ReturnValue

Name Description
`List<LinearRing3D>`

#### ofWithDuplicatesRemoval

`fun ofWithDuplicatesRemoval(leftVertices: List<Vector3D>, rightVertices: List<Vector3D>, tolerance: Double): Result, Exception><List<LinearRing3D>, Exception>`

Creates multiple linear rings from two lists of vertices leftVertices and rightVertices. A list of linear rings are created by iterating over both lists jointly. Possible consecutively following point duplicates are removed before construction.

Parameters

Name Description
`leftVertices: List<Vector3D>`

left vertices for the linear rings construction

`rightVertices: List<Vector3D>`

right vertices for the linear rings construction

`tolerance: Double`

ReturnValue

Name Description
`Result, Exception><List<LinearRing3D>, Exception>`