LineSegment.java
Geographic line segment object class
Size 3.8 kB - File type text/plainFile contents
// Name: LineSegment.java
// Intent: geographic line segment object class
// Programmer: John P. Kavanagh #2748 2405
// Date Modified: 30 April 2002
// Audit: Clifford Meyers (cmeyers@buffalo.edu)
public class LineSegment {
// note that point naming provides direction
private Point beginning;
private Point ending;
// line list
private LineSegment prev = null;
private LineSegment next = null;
// The line segment constructor
public LineSegment(Point pt1, Point pt2) {
beginning = pt1;
ending = pt2;
//System.out.println("Instantiated new line segment (" + beginning.getXvalue() + "," + beginning.getYvalue() + "),(" + ending.getXvalue() + "," + ending.getYvalue() + ")" );
}
// Connect segment to adjacent segments
public void AddNextSegment(LineSegment n) {
if ((n.GetBeginPoint().getXvalue() == ending.getXvalue()) && (n.GetBeginPoint().getYvalue() == ending.getYvalue())){
next = n;
//System.out.println("Added line segment (" + n.GetBeginPoint().getXvalue() + "," + n.GetBeginPoint().getYvalue() + "),("+ n.GetEndPoint().getXvalue() + "," + n.GetEndPoint().getYvalue() + ")");
}
else {
//System.out.println("These two line segments do not share a common point!");
}
}
// Connect segment to adjacent segments
public void AddPrevSegment(LineSegment p) {
if ((p.GetEndPoint().getXvalue() == beginning.getXvalue()) && (p.GetEndPoint().getYvalue() == beginning.getYvalue())){
prev = p;
}
else {
System.out.println("These two line segments do not share a common point!");
System.out.println("Your new segment will NOT be added to the line instance.");
System.out.println("");
}
}
// Remove next line segment
public void RemoveNextSegment() {
if (next != null){
next = null;
}
}
// Remove previous line segment
public void RemovePrevSegment() {
if (prev != null){
prev = null;
}
}
// Determine length of line segment and return value
public double Length (){
double myLength = beginning.FindDistance(ending);
return myLength;
}
// Return beginning point of line segment
public Point GetBeginPoint(){
//System.out.println("Get line segment begin point: (" + beginning.getXvalue() + "," + beginning.getYvalue() + ")" );
return beginning;
}
public boolean IsBeginPoint(Point testMe){
if ( (beginning.getXvalue() == testMe.getXvalue()) && (beginning.getYvalue() == testMe.getYvalue())){
//System.out.println("Line segment begin point (true): (" + testMe.getXvalue() + "," + testMe.getYvalue() + ")");
}
else {
//System.out.println("Line segment begin point (false).");
}
// Test if given point is "equal" to beginning poin
return (beginning.getXvalue() == testMe.getXvalue()) && (beginning.getYvalue() == testMe.getYvalue());
}
// Return ending point of line segment
public Point GetEndPoint(){
//System.out.println("Get line segment end point: (" + ending.getXvalue() + "," + ending.getYvalue() + ")" );
return ending;
}
public boolean IsEndPoint(Point testMe){
// Test if given point is "equal" to beginning poin
return (ending.getXvalue() == testMe.getXvalue()) && (ending.getYvalue() == testMe.getYvalue());
}
// Return beginning point of line segment
public LineSegment GetNextSegment(){
return next;
}
// Return ending point of line segment
public LineSegment GetPrevSegment(){
return prev;
}
// Scale each point by given factor
public void Scale(String factor_value){
beginning.Scale(factor_value);
ending.Scale(factor_value);
return;
}
// Remove line segment
public void Destroy(){
beginning.Destroy();
ending.Destroy();
RemoveNextSegment();
RemovePrevSegment();
}
}
Click here to get the file