trait HasPointsAttribute

Methods

validatePoints(array $points)

Validates a points array for the shape of this annotation.

validateCoordinatesAreNumeric(array $points)

Valies that all coordinates are either int or float

validateNumberOfCoordinates(array $points)

Validates that the number of coordinates matches the required number for the given shape

validateNumberOfPoints(array $points)

Validates that the number of points (sequential coordinate pairs) matches the expected number of points for the given shape

validateShape(array $points)

Validates some edgecases where the given points don't create a valid shape

setPointsAttribute(array $points)

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

int
countDistinctPoints(array $points)

Counts number of distinct points

Details

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

InvalidShapeException

at line 31
protected validateCoordinatesAreNumeric(array $points)

Valies that all coordinates are either int or float

Parameters

array $points

Exceptions

InvalidCoordinateTypeException

at line 44
protected validateNumberOfCoordinates(array $points)

Validates that the number of coordinates matches the required number for the given shape

Parameters

array $points

Exceptions

InvalidNumberOfCoordinatesException

at line 69
protected validateNumberOfPoints(array $points)

Validates that the number of points (sequential coordinate pairs) matches the expected number of points for the given shape

Parameters

array $points

Exceptions

InvalidNumberOfPointsException

at line 102
protected validateShape(array $points)

Validates some edgecases where the given points don't create a valid shape

Parameters

array $points

Exceptions

InvalidShapeException

at line 143
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 154
protected int countDistinctPoints(array $points)

Counts number of distinct points

Parameters

array $points

Return Value

int

number of distinct points *