RingGeometry - Verge3D User Manual - Soft8Soft
Description: Learn how to use RingGeometry in your interactive 3D apps made with Verge3D

BufferGeometry →

# RingGeometry

A class for generating a two-dimensional ring geometry.

## Code Example

`const geometry = new v3d.RingGeometry(1, 5, 32); const material = new v3d.MeshBasicMaterial({ color: 0xffff00, side: v3d.DoubleSide }); const mesh = new v3d.Mesh(geometry, material); app.scene.add(mesh);`

## Constructor

### RingGeometry(innerRadius : Float, outerRadius : Float, thetaSegments : Integer, phiSegments : Integer, thetaStart : Float, thetaLength : Float)

- innerRadius — default is `0.5`.
- outerRadius — default is `1`.
- thetaSegments — number of segments. A higher number means the ring will be more round. Minimum is `3`. Default is `32`.
- phiSegments — minimum is `1`. Default is `1`.
- thetaStart — starting angle. Default is `0`.
- thetaLength — central angle. Default is 2π (`2*Math.PI`).

Procedural geometry is fun. However, in real life applications this feature is rarely needed. It would be more efficient do design rings in the preferred modelling suite and export/load to Verge3D via glTF.

## Properties

See the base BufferGeometry class for inherited properties.

### # .parameters : Object

An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.

## Methods

See the base BufferGeometry class for inherited methods.

## Puzzles

The create object puzzle can be used to create rings in a code-less manner.

## Source

For more info on how to obtain the source code of this module see this page.