1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.geojson.model;
18
19 import io.swagger.v3.oas.annotations.media.Schema;
20 import java.io.Serial;
21 import java.io.Serializable;
22 import java.math.BigDecimal;
23 import java.util.ArrayList;
24 import java.util.Collection;
25 import lombok.EqualsAndHashCode;
26 import lombok.NoArgsConstructor;
27 import lombok.ToString;
28
29
30
31
32
33
34 @Schema(description = "The bounding box of a geometry, feature or feature collection.")
35 @EqualsAndHashCode(callSuper = true)
36 @ToString(callSuper = true)
37 @NoArgsConstructor
38 public class BoundingBox extends ArrayList<BigDecimal> implements Serializable {
39
40 @Serial
41 private static final long serialVersionUID = 1L;
42
43
44
45
46
47
48 public BoundingBox(Collection<? extends BigDecimal> coordinates) {
49 super(coordinates);
50 }
51
52 @Schema(hidden = true)
53 @Override
54 public boolean isEmpty() {
55 return super.isEmpty();
56 }
57
58
59
60
61
62
63 public double[] toDoubleArray() {
64 if (size() == 4 || size() == 6) {
65 double[] bbox = new double[size()];
66 int i = 0;
67 for (BigDecimal value : this) {
68 bbox[i] = value.doubleValue();
69 i++;
70 }
71 return bbox;
72 }
73 return null;
74 }
75
76 }
77