# Morph

Class · extends [`RefCountedObject`](https://api.playcanvas.com/engine/classes/RefCountedObject.md) · category: Graphics

Source: https://github.com/playcanvas/engine/blob/970d89f6d3bc6667f4e1f88153abd6e7e82ed52c/src/scene/morph.js#L25

Contains a list of [MorphTarget](https://api.playcanvas.com/engine/classes/MorphTarget.md)s, a combined delta AABB and some associated data.

## Constructors

### constructor

```ts
new Morph(targets: MorphTarget[], graphicsDevice: GraphicsDevice, options?: object)
```

Create a new Morph instance.

**Parameters**

- `targets` ([`MorphTarget`](https://api.playcanvas.com/engine/classes/MorphTarget.md)`[]`): A list of morph targets.
- `graphicsDevice` ([`GraphicsDevice`](https://api.playcanvas.com/engine/classes/GraphicsDevice.md)): The graphics device used to manage this morph target.
- `options` (`object`, optional, default `{}`): Object for passing optional arguments.
    - `options.preferHighPrecision` (`boolean`, optional, default `false`): True if high precision storage should be
      preferred. This is faster to create and allows higher precision, but takes more memory and
      might be slower to render. Defaults to false.

## Properties

### preferHighPrecision

```ts
preferHighPrecision: boolean
```

## Accessors

### targets

```ts
get targets(): MorphTarget[]
```

Gets the array of morph targets.

## Methods

### destroy

```ts
destroy(): void
```

Frees video memory allocated by this object.

## Inherited from [RefCountedObject](https://api.playcanvas.com/engine/classes/RefCountedObject.md)

- `get refCount(): number`
- `decRefCount(): void`
- `incRefCount(): void`
