class AnnotationPoints implements ValidationRule

Properties

protected Shape|null $shape

The shape the points should be valid for.

Methods

__construct(mixed $shape)

Create a new instance.

void
validate(string $attribute, mixed $value, Closure $fail)

Run the validation rule.

string|null
getErrorMessage(array $points)

Get the validation error message for a points array.

string|null
validateCoordinatesAreNumeric(array $points)

Validate that all coordinates are either int or float.

string|null
validateNumberOfCoordinates(array $points)

Validate that the number of coordinates matches the required number for the given shape.

string|null
validateNumberOfPoints(array $points)

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

string|null
validateShape(array $points)

Validate some edge cases where the given points don't create a valid shape.

int
countDistinctPoints(array $points)

Count the number of distinct points.

Details

at line 22
__construct(mixed $shape)

Create a new instance.

Parameters

mixed $shape

Shape or shape ID. Anything that is not a valid shape is treated as unknown shape, in which case the points are not validated.

at line 36
void validate(string $attribute, mixed $value, Closure $fail)

Run the validation rule.

Parameters

string $attribute
mixed $value
Closure $fail

Return Value

void

at line 58
string|null getErrorMessage(array $points)

Get the validation error message for a points array.

This can be used to apply the rule outside of a validator.

Parameters

array $points

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

Return Value

string|null

The error message or null if the points are valid.

at line 75
protected string|null validateCoordinatesAreNumeric(array $points)

Validate that all coordinates are either int or float.

Parameters

array $points

Return Value

string|null

at line 90
protected string|null validateNumberOfCoordinates(array $points)

Validate that the number of coordinates matches the required number for the given shape.

Parameters

array $points

Return Value

string|null

at line 117
protected string|null validateNumberOfPoints(array $points)

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

Parameters

array $points

Return Value

string|null

at line 151
protected string|null validateShape(array $points)

Validate some edge cases where the given points don't create a valid shape.

Parameters

array $points

Return Value

string|null

at line 189
protected int countDistinctPoints(array $points)

Count the number of distinct points.

Parameters

array $points

Return Value

int