# OrbitRig

> Talos 0.7 · Since 0.6

## Signature

```ts
export class OrbitRig implements CameraRig {
  readonly kind = "orbit" as const
  readonly config: OrbitConfig
  yaw: number
  pitch: number
  distance: number
  pose: CameraPose
  idleFor = 0
  constructor(config: Partial<OrbitConfig> = {})
  followTarget(ctx: Ctx): EntityHandle | null
  update(ctx: Ctx, dt: number, input: RigInput): CameraPose
  setHeading(yaw: number, pitch: number): void
}
```

Import: `import { OrbitRig } from "@argus/gameplay"`

## Members

| Member | Signature | Description |
|---|---|---|
| `kind` | `readonly kind = "orbit" as const` |  |
| `config` | `readonly config: OrbitConfig` |  |
| `yaw` | `yaw: number` |  |
| `pitch` | `pitch: number` |  |
| `distance` | `distance: number` |  |
| `pose` | `pose: CameraPose` |  |
| `idleFor` | `idleFor = 0` | Seconds since the look or zoom axis last moved. |
| `constructor` | `constructor(config: Partial<OrbitConfig> = {})` |  |
| `followTarget` | `followTarget(ctx: Ctx): EntityHandle \| null` |  |
| `update` | `update(ctx: Ctx, dt: number, input: RigInput): CameraPose` |  |
| `setHeading` | `setHeading(yaw: number, pitch: number): void` |  |
