# processDataTable

Function

Source: https://github.com/playcanvas/splat-transform/blob/b6424a5b3b929695fbaafe738a995adb1240d675/src/lib/process.ts#L318

```ts
processDataTable(dataTable: DataTable, processActions: ProcessAction[], options?: ProcessOptions): Promise<DataTable>
```

Applies a sequence of processing actions to splat data.

Actions are applied in order and can include transformations (translate, rotate, scale),
filters (NaN, value, box, sphere, bands), and analysis (stats).

**Parameters**

- `dataTable` ([`DataTable`](https://api.playcanvas.com/splat-transform/classes/DataTable.md)): The input splat data.
- `processActions` ([`ProcessAction`](https://api.playcanvas.com/splat-transform/types/ProcessAction.md)`[]`): Array of actions to apply in sequence.
- `options` ([`ProcessOptions`](https://api.playcanvas.com/splat-transform/types/ProcessOptions.md), optional): Optional resources for GPU-dependent actions (e.g. filterCluster).

**Returns** `Promise<`[`DataTable`](https://api.playcanvas.com/splat-transform/classes/DataTable.md)`>`: The processed DataTable (may be a new instance if filtered).

**Example**

```ts
import { Vec3 } from 'playcanvas';

const processed = await processDataTable(dataTable, [
    { kind: 'scale', value: 0.5 },
    { kind: 'translate', value: new Vec3(0, 1, 0) },
    { kind: 'filterNaN' },
    // opacity value is in linear space (0-1), automatically converted to logit for comparison
    { kind: 'filterByValue', columnName: 'opacity', comparator: 'gt', value: 0.1 }
]);
```
