Sweep-Line-Algorithm

Форк
0
100 строк · 2.0 Кб
1
/**
2
 * Point class.
3
 */
4
public class Point implements Comparable<Point> {
5
    private final long x;
6
    private final long y;
7
    private boolean left = false;
8

9
    private Segment segment;
10

11
    /**
12
     * Gets {@link Segment} that contains this {@link Point}.
13
     *
14
     * @return the segment
15
     */
16
    public Segment getSegment() {
17
        return segment;
18
    }
19

20
    /**
21
     * Sets {@link Segment} that contains this {@link Point}.
22
     *
23
     * @param segment the segment
24
     */
25
    public void setSegment(Segment segment) {
26
        this.segment = segment;
27
    }
28

29
    /**
30
     * Instantiates a new {@link Point}.
31
     *
32
     * @param x the x coordinate
33
     * @param y the y coordinate
34
     */
35
    Point(long x, long y) {
36
        this.x = x;
37
        this.y = y;
38
    }
39

40
    /**
41
     * Instantiates a new {@link Point}.
42
     *
43
     * @param x    the x coordinate
44
     * @param y    the y coordinate
45
     * @param left is this {@link Point} left at {@link Segment}
46
     */
47
    Point(long x, long y, boolean left) {
48
        this.x = x;
49
        this.y = y;
50
        this.left = left;
51
    }
52

53
    /**
54
     * Gets x coordinate.
55
     *
56
     * @return the x
57
     */
58
    public long getX() {
59
        return x;
60
    }
61

62
    /**
63
     * Gets y coordinate.
64
     *
65
     * @return the y
66
     */
67
    public long getY() {
68
        return y;
69
    }
70

71
    @Override
72
    public String toString() {
73
        return String.format("%d %d", x, y);
74
    }
75

76
    /**
77
     * Checks is this {@link Point} left at {@link Segment}.
78
     *
79
     * @return {@code true} is this {@link Point} left at {@link Segment}, otherwise {@code false}
80
     */
81
    public boolean isLeft() {
82
        return left;
83
    }
84

85
    /**
86
     * Checks is this {@link Point} right at {@link Segment}.
87
     *
88
     * @return {@code true} is this {@link Point} right at {@link Segment}, otherwise {@code false}
89
     */
90
    public boolean isRight() {
91
        return !isLeft();
92
    }
93

94
    @Override
95
    public int compareTo(Point other) {
96
        return Long.compare(getX(), other.getX());
97
    }
98

99

100
}
101

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.