AnyLogic
Expand
Font size
All Implemented Interfaces:
IMarkupSegment, java.io.Serializable
Direct Known Subclasses:
MarkupSegmentArc, MarkupSegmentLine

public abstract class MarkupSegment
extends AbstractMarkupSegment
Basic implementation of IMarkupSegment for continuous space.
Author:
AnyLogic North America, LLC https://anylogic.com
See Also:
Serialized Form

Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods 
abstract java.util.List<java.awt.Shape> convertToShapes()
Converts the markup segment into java.awt.geom primitives like Arc2D or Line2D
BoundingRectangle getBoundingRectangle()  
abstract double getDistanceSq​(double x, double y)
For horizontal segments, calculates and returns the square of distance to the point (in the XY-projection).
abstract double getDistanceSq​(double x, double y, double z)
Calculates and returns the square of distance to the given (x, y, z) point.
double getDistanceSq​(Point givenPoint)
Calculates and returns the square of distance to the given point.
Point getEnd​(Point out)
Returns the location of the end point of the segment
double getEndX()
Returns the x coordinate of the end point of the segment
double getEndY()
Returns the y coordinate of the start point of the segment
double getEndZ()
Returns the z coordinate of the start point of the segment
abstract double getNearestPoint​(double x, double y, double z, Point out)
Calculates (using the output object) the point in this space markup element nearest to the given (x, y, z) point.
abstract double getNearestPoint​(double x, double y, Point out)
For horizontal segments, calculates (using the output object) the point in this space markup element nearest to the given (x, y) point.
double getNearestPoint​(Point givenPoint, Point out)
For horizontal segments, calculates (using the output object) the point in this space markup element nearest to the given (x, y) point.
double getOffsetFrom2D​(double offset2D)
Converts offset from the beginning of this segment given in XY-projection, to true offset, which may be used in various methods which require offset
Position getPositionAtOffset​(double offset, Position out)
Returns the point located on the segment with the given offset distance calculated from start point.
Point getStart​(Point out)
Returns the location of the start point of the segment
double getStartX()
Returns the x coordinate of the start point of the segment
double getStartY()
Returns the y coordinate of the start point of the segment
double getStartZ()
Returns the z coordinate of the start point of the segment
double length()
Returns the length of the path segment
double length2D()
Returns the length of the path segment in XY-projection
void setEnd​(double x, double y, double z)
Sets the end point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
void setEnd​(Point p)
Sets the end point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
void setStart​(double x, double y, double z)
Sets the start point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
void setStart​(Point p)
Sets the start point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
void setStartNextTo​(IMarkupSegment previousSegment)
Sets the start point of the path segment to the coordinates of the end point of the given previousSegment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
Modifier and Type Method Description

Methods inherited from class com.anylogic.engine.markup.AbstractMarkupSegment

getEnd, getStart

Methods inherited from class java.lang.Object

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods inherited from interface com.anylogic.engine.markup.IMarkupSegment

addTo, getNearestPointOnRay2D, getOffsetOfPoint

Method Detail

setStart

public final void setStart​(double x,
                           double y,
                           double z)
Sets the start point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
Parameters:
x - the x coordinate
y - the y coordinate
z - the z coordinate

setStart

public final void setStart​(Point p)
Sets the start point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
Specified by:
setStart in interface IMarkupSegment
Parameters:
p - the point

setStartNextTo

public final void setStartNextTo​(IMarkupSegment previousSegment)
Sets the start point of the path segment to the coordinates of the end point of the given previousSegment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
Specified by:
setStartNextTo in interface IMarkupSegment
Parameters:
previousSegment - the segment to get end-point, e.g. the previous segment in the path

getStart

public final Point getStart​(Point out)
Returns the location of the start point of the segment
Specified by:
getStart in interface IMarkupSegment
Parameters:
out - output object to write to, may be null
Returns:
the Point object with coordinates of the segment start

setEnd

public final void setEnd​(double x,
                         double y,
                         double z)
Sets the end point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
Parameters:
x - the x coordinate
y - the y coordinate
z - the z coordinate

setEnd

public final void setEnd​(Point p)
Sets the end point of the path segment.
This function may be called only for segments created using constructor without arguments.
Please call AbstractMarkupSegment.initialize() after segment setup is finished.
Specified by:
setEnd in interface IMarkupSegment
Parameters:
p - the point

getEnd

public final Point getEnd​(Point out)
Returns the location of the end point of the segment
Specified by:
getEnd in interface IMarkupSegment
Parameters:
out - output object to write to, may be null
Returns:
the Point object with coordinates of the segment end

getStartX

public final double getStartX()
Returns the x coordinate of the start point of the segment
Returns:
the x coordinate of the start point of the segment

getStartY

public final double getStartY()
Returns the y coordinate of the start point of the segment
Returns:
the y coordinate of the start point of the segment

getStartZ

public final double getStartZ()
Returns the z coordinate of the start point of the segment
Returns:
the z coordinate of the start point of the segment

getEndX

public final double getEndX()
Returns the x coordinate of the end point of the segment
Returns:
the x coordinate of the end point of the segment

getEndY

public final double getEndY()
Returns the y coordinate of the start point of the segment
Returns:
the y coordinate of the start point of the segment

getEndZ

public final double getEndZ()
Returns the z coordinate of the start point of the segment
Returns:
the z coordinate of the start point of the segment

getPositionAtOffset

public final Position getPositionAtOffset​(double offset,
                                          Position out)
Returns the point located on the segment with the given offset distance calculated from start point.
Parameters:
offset - offset, non-negative value, should be less or equal to the segment length.
out - output object to write to, may be null
Returns:

getDistanceSq

public abstract double getDistanceSq​(double x,
                                     double y)
For horizontal segments, calculates and returns the square of distance to the point (in the XY-projection). All the calculations are performed in the horizontal projection (z-coordinates aren't used, as if all of the z coordinates were zero).
Parameters:
x - x coordinate of the point
y - y coordinate of the point
Returns:
the square of distance to the given point in the horizontal (XY) projection

getNearestPoint

public abstract double getNearestPoint​(double x,
                                       double y,
                                       double z,
                                       Point out)
Calculates (using the output object) the point in this space markup element nearest to the given (x, y, z) point. Returns the square of distance to the point.
Parameters:
x - x coordinate of the point
y - y coordinate of the point
z - z coordinate of the point
output - the output point to write result to.
Returns:
the square of distance to the nearest point

getNearestPoint

public abstract double getNearestPoint​(double x,
                                       double y,
                                       Point out)
For horizontal segments, calculates (using the output object) the point in this space markup element nearest to the given (x, y) point. Returns the square of distance to the point (in the XY-projection). All the calculations are performed in the horizontal projection (z-coordinates aren't used, as if all of the z coordinates were zero).
Parameters:
x - x coordinate of the point
y - y coordinate of the point
out - the output point to write result to. Note that output.z is left unchanged.
Returns:
the square of distance to the nearest point in the horizontal (XY) projection

getNearestPoint

public double getNearestPoint​(Point givenPoint,
                              Point out)
Description copied from interface: IMarkupSegment
For horizontal segments, calculates (using the output object) the point in this space markup element nearest to the given (x, y) point. Returns the square of distance to the point (in the XY-projection). All the calculations are performed in the horizontal projection (z-coordinates aren't used, as if all of the z coordinates were zero).
Specified by:
getNearestPoint in interface IMarkupSegment
out - the output point to write result to. Note that output.z is left unchanged.
Returns:
the square of distance to the nearest point in the horizontal (XY) projection

getDistanceSq

public abstract double getDistanceSq​(double x,
                                     double y,
                                     double z)
Calculates and returns the square of distance to the given (x, y, z) point.
Parameters:
x - x coordinate of the point
y - y coordinate of the point
z - z coordinate of the point
Returns:
the square of distance to the given point

getDistanceSq

public double getDistanceSq​(Point givenPoint)
Description copied from interface: IMarkupSegment
Calculates and returns the square of distance to the given point.
Specified by:
getDistanceSq in interface IMarkupSegment
Returns:
the square of distance to the given point

length

public final double length()
Description copied from class: AbstractMarkupSegment
Returns the length of the path segment
Specified by:
length in interface IMarkupSegment
Overrides:
length in class AbstractMarkupSegment
Returns:
the length of the path segment, a positive number

length2D

public final double length2D()
Returns the length of the path segment in XY-projection
Returns:
the length of the path segment in XY-projection, a positive number

getOffsetFrom2D

@AnyLogicInternalAPI
public double getOffsetFrom2D​(double offset2D)
Converts offset from the beginning of this segment given in XY-projection, to true offset, which may be used in various methods which require offset
Parameters:
offset2D - offset in XY-projection
Returns:
offset

convertToShapes

public abstract java.util.List<java.awt.Shape> convertToShapes()
Converts the markup segment into java.awt.geom primitives like Arc2D or Line2D
Returns:
the list of primitives that comprise the markup segment

getBoundingRectangle

@AnyLogicInternalAPI
public abstract BoundingRectangle getBoundingRectangle()
How can we improve this article?