Skip to main content

BoundingBoxInterpolator

@fovea/annotation-tool


@fovea/annotation-tool / interpolation / BoundingBoxInterpolator

Class: BoundingBoxInterpolator

Defined in: src/utils/interpolation.ts:20

BoundingBoxInterpolator

Description

Interpolates bounding boxes between keyframes using various interpolation modes.

Constructors

Constructor

new BoundingBoxInterpolator(): BoundingBoxInterpolator

Returns

BoundingBoxInterpolator

Methods

addKeyframe()

addKeyframe(sequence, frameNumber): BoundingBoxSequence

Defined in: src/utils/interpolation.ts:433

Add a new keyframe at the specified frame.

Parameters

sequence

BoundingBoxSequence

Bounding box sequence

frameNumber

number

Frame number for new keyframe

Returns

BoundingBoxSequence

Updated sequence


evaluateBezier()

evaluateBezier(t, p0, p3, controlPoints): number

Defined in: src/utils/interpolation.ts:270

Evaluate cubic Bezier curve.

Parameters

t

number

Normalized time (0-1)

p0

number

Start value

p3

number

End value

controlPoints

BezierControlPoint[]

Bezier control points

Returns

number

Interpolated value


evaluateParametric()

evaluateParametric(t, startValue, endValue, func): number

Defined in: src/utils/interpolation.ts:349

Evaluate parametric function.

Parameters

t

number

Normalized time (0-1)

startValue

number

Starting value

endValue

number

Ending value

func

ParametricFunction

Parametric function configuration

Returns

number

Interpolated value


interpolate()

interpolate(keyframes, segments, visibilityRanges?): BoundingBox[]

Defined in: src/utils/interpolation.ts:29

Generate all frames for a bounding box sequence.

Parameters

keyframes

BoundingBox[]

User-defined keyframes

segments

InterpolationSegment[]

Interpolation configuration per segment

visibilityRanges?

object[]

Optional visibility ranges for discontiguous sequences

Returns

BoundingBox[]

Complete sequence with interpolated frames


interpolateProperty()

interpolateProperty(startValue, endValue, startFrame, endFrame, currentFrame, type, config?): number

Defined in: src/utils/interpolation.ts:165

Interpolate a single property between two keyframes.

Parameters

startValue

number

Starting value

endValue

number

Ending value

startFrame

number

Starting frame number

endFrame

number

Ending frame number

currentFrame

number

Current frame number

type

InterpolationType

Interpolation type

config?

Optional bezier control points or parametric function

ParametricFunction | BezierControlPoint[]

Returns

number

Interpolated value


removeKeyframe()

removeKeyframe(sequence, frameNumber): BoundingBoxSequence

Defined in: src/utils/interpolation.ts:570

Remove a keyframe from the sequence.

Parameters

sequence

BoundingBoxSequence

Bounding box sequence

frameNumber

number

Frame number to remove

Returns

BoundingBoxSequence

Updated sequence


updateKeyframe()

updateKeyframe(sequence, frameNumber, newBox): BoundingBoxSequence

Defined in: src/utils/interpolation.ts:394

Update a keyframe in the sequence (immutable).

Parameters

sequence

BoundingBoxSequence

Bounding box sequence

frameNumber

number

Frame number to update

newBox

Partial<BoundingBox>

New bounding box values

Returns

BoundingBoxSequence

Updated sequence