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.Hyperplane;
26 import org.hipparchus.geometry.partitioning.Region;
27
28
29
30
31
32
33 public class SubOrientedPoint extends AbstractSubHyperplane<Euclidean1D, Euclidean1D> {
34
35
36
37
38
39 public SubOrientedPoint(final Hyperplane<Euclidean1D> hyperplane,
40 final Region<Euclidean1D> 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 AbstractSubHyperplane<Euclidean1D, Euclidean1D> buildNew(final Hyperplane<Euclidean1D> hyperplane,
59 final Region<Euclidean1D> remainingRegion) {
60 return new SubOrientedPoint(hyperplane, remainingRegion);
61 }
62
63
64 @Override
65 public SplitSubHyperplane<Euclidean1D> split(final Hyperplane<Euclidean1D> hyperplane) {
66 final double global = hyperplane.getOffset(((OrientedPoint) getHyperplane()).getLocation());
67 if (global < -hyperplane.getTolerance()) {
68 return new SplitSubHyperplane<Euclidean1D>(null, this);
69 } else if (global > hyperplane.getTolerance()) {
70 return new SplitSubHyperplane<Euclidean1D>(this, null);
71 } else {
72 return new SplitSubHyperplane<Euclidean1D>(null, null);
73 }
74 }
75
76 }