class Annotation extends Model implements Annotation

An annotation is a region of an image that can be labeled by the users.

It consists of one or many points and has a specific shape.

Traits

Properties

protected array $hidden The attributes excluded from the model's JSON form.
protected array $casts The attributes that should be casted to native types.

Methods

validatePoints(array $points)

Validates a points array for the shape of this annotation.

setPointsAttribute(array $points)

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

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
image()

The image, this annotation belongs to.

BelongsTo
shape()

The shape of this annotation.

HasMany
labels()

The labels, this annotation got assigned by the users.

array
getPoints()

Get the points array of the annotation.

getShape()

Get the shape of an annotation.

getImage()

Get the image, the annotation belongs to.

Details

in HasPointsAttribute at line 16
validatePoints(array $points)

Validates a points array for the shape of this annotation.

Parameters

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

Exceptions

Exception If the points array is invalid

in HasPointsAttribute at line 57
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

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

at line 69
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

at line 84
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 130
BelongsTo image()

The image, this annotation belongs to.

Return Value

BelongsTo

at line 140
BelongsTo shape()

The shape of this annotation.

Return Value

BelongsTo

at line 150
HasMany labels()

The labels, this annotation got assigned by the users.

Return Value

HasMany

at line 158
array getPoints()

Get the points array of the annotation.

Return Value

array

at line 166
Shape getShape()

Get the shape of an annotation.

Return Value

Shape

at line 174
Image getImage()

Get the image, the annotation belongs to.

Return Value

Image