1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.hipparchus.geometry.euclidean.oned;
23
24 import org.hipparchus.geometry.partitioning.AbstractSubHyperplane;
25 import org.hipparchus.geometry.partitioning.Region;
26
27
28
29
30
31 public class SubOrientedPoint
32 extends AbstractSubHyperplane<Euclidean1D, Vector1D, OrientedPoint, SubOrientedPoint,
33 Euclidean1D, Vector1D, OrientedPoint, SubOrientedPoint> {
34
35
36
37
38
39 public SubOrientedPoint(final OrientedPoint hyperplane,
40 final Region<Euclidean1D, Vector1D, OrientedPoint, SubOrientedPoint> remainingRegion) {
41 super(hyperplane, remainingRegion);
42 }
43
44
45 @Override
46 public double getSize() {
47 return 0;
48 }
49
50
51 @Override
52 public boolean isEmpty() {
53 return false;
54 }
55
56
57 @Override
58 protected SubOrientedPoint buildNew(final OrientedPoint hyperplane,
59 final Region<Euclidean1D, Vector1D, OrientedPoint, SubOrientedPoint> remainingRegion) {
60 return new SubOrientedPoint(hyperplane, remainingRegion);
61 }
62
63
64 @Override
65 public Vector1D getInteriorPoint() {
66 return getHyperplane().getLocation();
67 }
68
69
70 @Override
71 public SplitSubHyperplane<Euclidean1D, Vector1D, OrientedPoint, SubOrientedPoint> split(final OrientedPoint hyperplane) {
72 final double global = hyperplane.getOffset(getHyperplane().getLocation());
73 if (global < -hyperplane.getTolerance()) {
74 return new SplitSubHyperplane<>(null, this);
75 } else if (global > hyperplane.getTolerance()) {
76 return new SplitSubHyperplane<>(this, null);
77 } else {
78 return new SplitSubHyperplane<>(null, null);
79 }
80 }
81
82 }