1 /* File LineObject2D.java
2 *
3 * Project : Java Geometry Library
4 *
5 * ===========================================
6 *
7 * This library is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 2.1 of the License, or (at
10 * your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY
14 * or FITNESS FOR A PARTICULAR PURPOSE.
15 *
16 * See the GNU Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this library. if not, write to :
20 * The Free Software Foundation, Inc., 59 Temple Place, Suite 330,
21 * Boston, MA 02111-1307, USA.
22 */
23
24 // package
25
26 package math.geom2d.line;
27
28 import math.geom2d.Point2D;
29
30 // Imports
31
32 /**
33 * Line object defined from 2 points. This object keep points reference in
34 * memory, and recomputes properties directly from points. LineObject2D is
35 * mutable.
36 * <p>
37 * Example :
38 * <p>
39 * <code>
40 * // Create an Edge2D<br>
41 * LineObject2D line = new LineObject2D(new Point2D(0, 0), new Point2D(1, 2));<br>
42 * // Change direction of line, by changing second point :<br>
43 * line.setPoint2(new Point2D(4, 5));<br>
44 * // Change position and direction of the line, by changing first point. <br>
45 * // 'line' is now the edge (2,3)-(4,5)<br>
46 * line.setPoint1(new Point2D(2, 3));<br>
47 * </code>
48 * <p>
49 * <p>
50 * This class is maybe slower than Edge2D or StraightLine2D, because parameters
51 * are updated each time a computation is made, causing lot of additional
52 * processing.
53 * @deprecated use Line2D instead
54 */
55 @Deprecated
56 public class LineObject2D extends Line2D implements Cloneable {
57
58
59 // ===================================================================
60 // constructors
61
62 /** Define a new LineObject2D with two extremities. */
63 public LineObject2D(Point2D point1, Point2D point2) {
64 super(point1, point2);
65 }
66
67 /** Define a new LineObject2D with two extremities. */
68 public LineObject2D(double x1, double y1, double x2, double y2) {
69 super(x1, y1, x2, y2);
70 }
71
72 // ===================================================================
73 // Methods specific to LineObject2D
74
75
76 @Override
77 public Line2D clone() {
78 return new Line2D(p1.clone(), p2.clone());
79 }
80 }