class VideoAnnotation extends Annotation

Traits

HasFactory

Properties

protected array $hidden

The attributes excluded from the model's JSON form.

from  Annotation
protected array $casts

The attributes that should be casted to native types.

protected array $fillable

The attributes that are mass assignable.

Methods

validatePoints(array $points = [])

Validate the points and frames of this annotation.

setPointsAttribute(array $points)

Round the floats of the points array to 2 decimals before saving.

int
countDistinctCoordinates(array $points)

Counts number of distinct points

Builder
scopeVisibleFor(Builder $query, User $user)

Scope a query to only include annotations that are visible for a certain user.

Builder
scopeWithLabel(Builder $query, Label $label)

Scope a query to only include annotations that have a certain label attached.

Builder
scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)

Scope a query to only include annotations allowed by the session for the user.

BelongsTo
file()

The file, this annotation belongs to.

HasMany
labels()

The labels that are attached to this annotation.

int
getFileIdAttribute()

Get the file_id attribute

BelongsTo
shape()

The shape of this annotation.

array
getPoints()

Get the points array of the annotation.

getShape()

Get the shape of an annotation.

getFile()

Get the image/video, the annotation belongs to.

BelongsTo
video()

The video, this annotation belongs to.

array
interpolatePoints(float $time)

Get the interpolated points at a specific point of time.

array
interpolateBetweenFrames(int $index1, int $index2, float $progress)

Get the interpolated points of this annotation between the specified frames.

array
getInterpolationPoints()

Get the points of this annotation prepared for interpolation.

array
interpolateNaive(array $from, array $to, float $progress)

Interpolate between two points arrays.

array
rectangleToInterpolationPoints(array $points)

Convert the points array of a rectangle (frame) to points that can be interpolated.

array
interpolationPointsToRectangle(array $points)

Convert points that can be interpolated back to the points of a rectangle (frame).

Details

at line 94
validatePoints(array $points = [])

Validate the points and frames of this annotation.

Parameters

array $points

Points array like [x1, y1, x2, y2, x3, y3, ...]

Exceptions

Exception

at line 81
setPointsAttribute(array $points)

Round the floats of the points array to 2 decimals before saving.

This is a more than sufficient precision for annotation point coordinates and saves memory in the DB as well as when processing the annotations in PHP.

Parameters

array $points

in HasPointsAttribute at line 80
private int countDistinctCoordinates(array $points)

Counts number of distinct points

Parameters

array $points

containing the coordinates

Return Value

int

number of distinct points *

in Annotation at line 45
Builder scopeVisibleFor(Builder $query, User $user)

Scope a query to only include annotations that are visible for a certain user.

Parameters

Builder $query
User $user

The user to whom the restrictions should apply ('own' user)

Return Value

Builder

in Annotation at line 78
Builder scopeWithLabel(Builder $query, Label $label)

Scope a query to only include annotations that have a certain label attached.

Parameters

Builder $query
Label $label

Return Value

Builder

in Annotation at line 98
Builder scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)

Scope a query to only include annotations allowed by the session for the user.

Parameters

Builder $query
AnnotationSession $session
User $user

The user to whom the restrictions should apply ('own' user)

Return Value

Builder

at line 48
BelongsTo file()

The file, this annotation belongs to.

Return Value

BelongsTo

at line 68
HasMany labels()

The labels that are attached to this annotation.

Return Value

HasMany

at line 58
int getFileIdAttribute()

Get the file_id attribute

Return Value

int

in Annotation at line 179
BelongsTo shape()

The shape of this annotation.

Return Value

BelongsTo

in Annotation at line 187
array getPoints()

Get the points array of the annotation.

Return Value

array

in Annotation at line 195
Shape getShape()

Get the shape of an annotation.

Return Value

Shape

in Annotation at line 203
VolumeFile getFile()

Get the image/video, the annotation belongs to.

Return Value

VolumeFile

at line 38
BelongsTo video()

The video, this annotation belongs to.

Return Value

BelongsTo

at line 122
array interpolatePoints(float $time)

Get the interpolated points at a specific point of time.

This method must be equivalent to the interpolatePoints function of the JavaScript annotation model!

Parameters

float $time

Return Value

array

at line 157
protected array interpolateBetweenFrames(int $index1, int $index2, float $progress)

Get the interpolated points of this annotation between the specified frames.

Parameters

int $index1

Index of the first frame.

int $index2

Index of the second frame.

float $progress

Progress between the two frames.

Return Value

array

at line 184
protected array getInterpolationPoints()

Get the points of this annotation prepared for interpolation.

Return Value

array

at line 207
protected array interpolateNaive(array $from, array $to, float $progress)

Interpolate between two points arrays.

Parameters

array $from
array $to
float $progress

Return Value

array

at line 220
protected array rectangleToInterpolationPoints(array $points)

Convert the points array of a rectangle (frame) to points that can be interpolated.

Parameters

array $points

Return Value

array

at line 245
protected array interpolationPointsToRectangle(array $points)

Convert points that can be interpolated back to the points of a rectangle (frame).

Parameters

array $points

Return Value

array