*Inheritance: EventDispatcher → BufferGeometry →*

# TorusGeometry

A geometry class for representing an torus.

## Code Example

```js
const geometry = new THREE.TorusGeometry( 10, 3, 16, 100 );
const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
const torus = new THREE.Mesh( geometry, material );
scene.add( torus );
```

## Constructor

### new TorusGeometry( radius : number, tube : number, radialSegments : number, tubularSegments : number, arc : number, thetaStart : number, thetaLength : number )

Constructs a new torus geometry.

**radius**

Radius of the torus, from the center of the torus to the center of the tube.

Default is `1`.

**tube**

Radius of the tube. Must be smaller than `radius`.

Default is `0.4`.

**radialSegments**

The number of radial segments.

Default is `12`.

**tubularSegments**

The number of tubular segments.

Default is `48`.

**arc**

Central angle in radians.

Default is `Math.PI*2`.

**thetaStart**

Start of the tubular sweep in radians.

Default is `0`.

**thetaLength**

Length of the tubular sweep in radians.

Default is `Math.PI*2`.

## Properties

### .parameters : Object

Holds the constructor parameters that have been used to generate the geometry. Any modification after instantiation does not change the geometry.

## Static Methods

### .fromJSON( data : Object ) : TorusGeometry

Factory method for creating an instance of this class from the given JSON object.

**data**

A JSON object representing the serialized geometry.

**Returns:** A new instance.

## Source

[src/geometries/TorusGeometry.js](https://github.com/mrdoob/three.js/blob/master/src/geometries/TorusGeometry.js)