[gs-longan](../README.md) / MeshBuilder

# Class: MeshBuilder

## Table of contents

### Constructors

- [constructor](MeshBuilder.md#constructor)

### Methods

- [createBox](MeshBuilder.md#createbox)
- [createCircle](MeshBuilder.md#createcircle)
- [createCube](MeshBuilder.md#createcube)
- [createExtrude](MeshBuilder.md#createextrude)
- [createHemisphere](MeshBuilder.md#createhemisphere)
- [createPlane](MeshBuilder.md#createplane)
- [createQuad](MeshBuilder.md#createquad)
- [createSphere](MeshBuilder.md#createsphere)
- [createStripe](MeshBuilder.md#createstripe)
- [createVerticalStripe](MeshBuilder.md#createverticalstripe)

## Constructors

### constructor

• **new MeshBuilder**(): [`MeshBuilder`](MeshBuilder.md)

#### Returns

[`MeshBuilder`](MeshBuilder.md)

## Methods

### createBox

▸ **createBox**(`bb`, `color?`, `textureScale?`): [`Mesh`](../interfaces/Mesh.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `bb` | `Float32Array` |
| `color?` | `Float32Array` |
| `textureScale?` | `number` |

#### Returns

[`Mesh`](../interfaces/Mesh.md)

___

### createCircle

▸ **createCircle**(`origin`, `radius`, `normal`, `curveTessNum`): [`Mesh`](../interfaces/Mesh.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `origin` | `Float32Array` |
| `radius` | `number` |
| `normal` | `Float32Array` |
| `curveTessNum` | `number` |

#### Returns

[`Mesh`](../interfaces/Mesh.md)

___

### createCube

▸ **createCube**(`length`): [`Mesh`](../interfaces/Mesh.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `length` | `number` |

#### Returns

[`Mesh`](../interfaces/Mesh.md)

___

### createExtrude

▸ **createExtrude**(`points`, `indexes`, `normal`, `options?`): `Object`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `points` | `ArrayLike`\<`number`\> | `undefined` |
| `indexes` | `ArrayLike`\<`number`\> | `undefined` |
| `normal` | `ArrayLike`\<`number`\> | `undefined` |
| `options` | `string` | `""` |

#### Returns

`Object`

| Name | Type |
| :------ | :------ |
| `formats` | \{ `name`: `string` = "a\_position"; `offset`: `number` = 0; `size`: `number` = 3; `slot`: `number` = 0; `stride`: `number` = 12; `type`: `number` = WebGL2RenderingContext.FLOAT }[] |
| `indexes` | `Int32Array` |
| `vertexes` | `Float32Array` |

___

### createHemisphere

▸ **createHemisphere**(`params`): `Object`

#### Parameters

| Name | Type |
| :------ | :------ |
| `params` | `Float64Array` |

#### Returns

`Object`

| Name | Type |
| :------ | :------ |
| `formats` | \{ `name`: `string` = "a\_position"; `offset`: `number` = 0; `size`: `number` = 3; `slot`: `number` = 0; `stride`: `number` = 12; `type`: `number` = WebGL2RenderingContext.FLOAT }[] |
| `indexes` | `Int32Array` |
| `vertexes` | `Float32Array` |

___

### createPlane

▸ **createPlane**(`plane`, `color?`, `textureScale?`): [`Mesh`](../interfaces/Mesh.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `plane` | `Float32Array` |
| `color?` | `Float32Array` |
| `textureScale?` | `number` |

#### Returns

[`Mesh`](../interfaces/Mesh.md)

___

### createQuad

▸ **createQuad**(): [`Mesh`](../interfaces/Mesh.md)

#### Returns

[`Mesh`](../interfaces/Mesh.md)

___

### createSphere

▸ **createSphere**(`options?`): `Object`

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | `Object` |
| `options.arc?` | `number` |
| `options.backUVs?` | [`Vector4`](Vector4.md) |
| `options.dedupTopBottomIndices?` | `boolean` |
| `options.diameter?` | `number` |
| `options.diameterX?` | `number` |
| `options.diameterY?` | `number` |
| `options.diameterZ?` | `number` |
| `options.frontUVs?` | [`Vector4`](Vector4.md) |
| `options.segments?` | `number` |
| `options.sideOrientation?` | `MeshFaceSide` |
| `options.slice?` | `number` |

#### Returns

`Object`

| Name | Type |
| :------ | :------ |
| `formats` | \{ `name`: `string` = "a\_position"; `offset`: `number` = 0; `size`: `number` = 3; `slot`: `number` = 0; `stride`: `number` = 32; `type`: `number` = WebGL2RenderingContext.FLOAT }[] |
| `indexes` | `Int32Array` |
| `vertexes` | `Float32Array` |

___

### createStripe

▸ **createStripe**(`points`, `normal`, `height`, `createUv?`, `uvType?`, `scale?`): [`Mesh`](../interfaces/Mesh.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `points` | `ArrayLike`\<`number`\> |
| `normal` | `ArrayLike`\<`number`\> |
| `height` | `number` |
| `createUv?` | `boolean` |
| `uvType?` | [`UvType`](../enums/UvType.md) |
| `scale?` | `Float64Array` |

#### Returns

[`Mesh`](../interfaces/Mesh.md)

___

### createVerticalStripe

▸ **createVerticalStripe**(`points`, `height`, `createUv?`, `uvType?`, `scale?`): [`Mesh`](../interfaces/Mesh.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `points` | `ArrayLike`\<`number`\> |
| `height` | `number` |
| `createUv?` | `boolean` |
| `uvType?` | [`UvType`](../enums/UvType.md) |
| `scale?` | `Float64Array` |

#### Returns

[`Mesh`](../interfaces/Mesh.md)
