> ## Documentation Index
> Fetch the complete documentation index at: https://docs.speckle.systems/llms.txt
> Use this file to discover all available pages before exploring further.

# GeometryConverter

> Abstract class that is the base for all concrete geometry converter implementations.

## Constructors

### constructor

```typescript theme={null}
constructor()
```

Default constructor.

## Methods

### getSpeckleType

```typescript theme={null}
abstract getSpeckleType(node: NodeData): SpeckleType
```

Gets an opinionated [*SpeckleType*](/developers/viewer/geometry-converter-api#speckletype) based on the node's data.

Parameters:

* **node**: [*NodeData*](/developers/viewer/world-tree-api#nodedata)

**Returns**: [*SpeckleType*](/developers/viewer/geometry-converter-api#speckletype)

### convertNodeToGeometryData

```typescript theme={null}
abstract convertNodeToGeometryData(node: NodeData): GeometryData
```

Takes in [*NodeData*](/developers/viewer/world-tree-api#nodedata) and outputs viewer defined geometry data.

Parameters:

* **node**: [*NodeData*](/developers/viewer/world-tree-api#nodedata)

**Returns**: [*GeometryData*](/developers/viewer/render-view-api#geometrydata)

### disposeNodeGeometryData

```typescript theme={null}
abstract disposeNodeGeometryData(node: NodeData): void
```

Parameters:

* **node**: [*NodeData*](/developers/viewer/world-tree-api#nodedata)
  Disposes the explicit node data geometry

**Returns**: void

## Typedefs

### SpeckleType

```typescript theme={null}
enum SpeckleType {
  View3D = 'View3D',
  BlockInstance = 'BlockInstance',
  Pointcloud = 'Pointcloud',
  Brep = 'Brep',
  Mesh = 'Mesh',
  Point = 'Point',
  Line = 'Line',
  Polyline = 'Polyline',
  Box = 'Box',
  Polycurve = 'Polycurve',
  Curve = 'Curve',
  Circle = 'Circle',
  Arc = 'Arc',
  Ellipse = 'Ellipse',
  RevitInstance = 'RevitInstance',
  Text = 'Text',
  Transform = 'Transform',
  Unknown = 'Unknown'
}
```

Non-exhaustive enum for viewer recognized object types.
