# KeyframeBuffer

class Animation.KeyframeBuffer()

  This class contains a collection of keyframes. A Keyframe consists of a scalar value T, representing the linear time in seconds, and a vector of scalars described by [[KeyType]]. Optionally, a Keyframe can also have a vector of tangents described by [[KeyType]], that are used for cubic spline interpolation. Keyframes are stored in the times, values, and tangents arrays. For example, with [[KeyType]] of Vec3: times: t0, t1, … tn values: v0x, v0y, v0z, … vnx, vny, vnz tangents: in_v0x, in_v0y, in_v0z, out_v0x, out_v0y, out_v0z, … in_vnx, in_vny, in_vnz, out_vnx, out_vny, out_vnz

Constructors

- `constructor()`

Properties

- `keyOffset`

- `keyType`

- `tangents`

- `times`

- `values`

Methods

- `deleteKeyframe()`

- `getKeyframeIndex()`

- `insertQuatKeyframe()`

- `insertScalarKeyframe()`

- `insertVec3Keyframe()`

- `updateQuatKeyframe()`

- `updateScalarKeyframe()`

- `updateVec3Keyframe()`

## Constructors

KeyframeBuffer.constructor(keyType)
  Arguments

    - keyType (`KeyType()`) – The type of keyframes that will be stored in the buffer.

  Creates a new buffer for storing keyframe data.

  Return type

    KeyframeBuffer

## Properties

KeyframeBuffer.keyOffset
  Type

    number

  The number of elements between successive keyframes in the array.

KeyframeBuffer.keyType
  Type

    KeyType

  The type of keyframes that will be stored in the buffer.

KeyframeBuffer.tangents
  Type

    [number]

KeyframeBuffer.times
  Type

    [number]

KeyframeBuffer.values
  Type

    [number]

## Methods

### deleteKeyframe

KeyframeBuffer.deleteKeyframe(index)
  Arguments

    - index (`number()`) – None

  Deletes a keyframe at the specified index.

  Return type

    void

### getKeyframeIndex

KeyframeBuffer.getKeyframeIndex(t)
  Arguments

    - t (`number()`) – None

  Returns the index of the keyframe at the specified time.

  Return type

    number

### insertQuatKeyframe

KeyframeBuffer.insertQuatKeyframe(t, x, y, z, w[, inTanX[, inTanY[, inTanZ[, inTanW[, outTanX[, outTanY[, outTanZ[, outTanW]]]]]]]])
  Arguments

    - t (`number()`) – None

    - x (`number()`) – None

    - y (`number()`) – None

    - z (`number()`) – None

    - w (`number()`) – None

    - inTanX (`number()`) – optional None

    - inTanY (`number()`) – optional None

    - inTanZ (`number()`) – optional None

    - inTanW (`number()`) – optional None

    - outTanX (`number()`) – optional None

    - outTanY (`number()`) – optional None

    - outTanZ (`number()`) – optional None

    - outTanW (`number()`) – optional None

  Inserts a Quat keyframe with the specified time. The type of this buffer should be [[KeyType.Quat]]

  Returns

    Index at which keyframe was inserted

  Return type

    void

### insertScalarKeyframe

KeyframeBuffer.insertScalarKeyframe(t, val[, inTan[, outTan]])
  Arguments

    - t (`number()`) – None

    - val (`number()`) – None

    - inTan (`number()`) – optional None

    - outTan (`number()`) – optional None

  Inserts a Scalar keyframe with the specified time. The type of this buffer should be [[KeyType.Scalar]]

  Returns

    Index at which keyframe was inserted

  Return type

    number

### insertVec3Keyframe

KeyframeBuffer.insertVec3Keyframe(t, x, y, z[, inTanX[, inTanY[, inTanZ[, outTanX[, outTanY[, outTanZ]]]]]])
  Arguments

    - t (`number()`) – None

    - x (`number()`) – None

    - y (`number()`) – None

    - z (`number()`) – None

    - inTanX (`number()`) – optional None

    - inTanY (`number()`) – optional None

    - inTanZ (`number()`) – optional None

    - outTanX (`number()`) – optional None

    - outTanY (`number()`) – optional None

    - outTanZ (`number()`) – optional None

  Inserts a Vec3 keyframe with the specified time. The type of this buffer should be [[KeyType.Vec3]]

  Returns

    Index at which keyframe was inserted

  Return type

    number

### updateQuatKeyframe

KeyframeBuffer.updateQuatKeyframe(index, t, x, y, z, w[, inTanX[, inTanY[, inTanZ[, inTanW[, outTanX[, outTanY[, outTanZ[, outTanW]]]]]]]])
  Arguments

    - index (`number()`) – None

    - t (`number()`) – None

    - x (`number()`) – None

    - y (`number()`) – None

    - z (`number()`) – None

    - w (`number()`) – None

    - inTanX (`number()`) – optional None

    - inTanY (`number()`) – optional None

    - inTanZ (`number()`) – optional None

    - inTanW (`number()`) – optional None

    - outTanX (`number()`) – optional None

    - outTanY (`number()`) – optional None

    - outTanZ (`number()`) – optional None

    - outTanW (`number()`) – optional None

  Updates a Quat keyframe at the specified index. The type of this buffer should be [[KeyType.Quat]]

  Return type

    void

### updateScalarKeyframe

KeyframeBuffer.updateScalarKeyframe(index, t, val[, inTan[, outTan]])
  Arguments

    - index (`number()`) – None

    - t (`number()`) – None

    - val (`number()`) – None

    - inTan (`number()`) – optional None

    - outTan (`number()`) – optional None

  Updates a Scalar keyframe at the specified index. The type of this buffer should be [[KeyType.Scalar]]

  Return type

    void

### updateVec3Keyframe

KeyframeBuffer.updateVec3Keyframe(index, t, x, y, z[, inTanX[, inTanY[, inTanZ[, outTanX[, outTanY[, outTanZ]]]]]])
  Arguments

    - index (`number()`) – None

    - t (`number()`) – None

    - x (`number()`) – None

    - y (`number()`) – None

    - z (`number()`) – None

    - inTanX (`number()`) – optional None

    - inTanY (`number()`) – optional None

    - inTanZ (`number()`) – optional None

    - outTanX (`number()`) – optional None

    - outTanY (`number()`) – optional None

    - outTanZ (`number()`) – optional None

  Updates a Vec3 keyframe at the specified index. The type of this buffer should be [[KeyType.Vec3]]

  Return type

    number