Interface ILcdGeoBuffer
- All Superinterfaces:
Cloneable
,ILcdBounded
,ILcdCloneable
,ILcdShape
,Serializable
- All Known Subinterfaces:
ILcd2DEditableGeoBuffer
,ILcdAirspaceCorridor
,ILcdEditableAirspaceCorridor
- All Known Implementing Classes:
TLcdAirspaceCorridor
,TLcdFeaturedAirspaceCorridor
,TLcdLonLatGeoBuffer
,TLcdNVG15Arrow
,TLcdNVG15Corridor
,TLcdNVG20Arrow
,TLcdNVG20Corridor
,TLcdNVG20Orbit
,TLcdXYGeoBuffer
ILcdGeoBuffer
shape defines a buffer or corridor around a given shape,
adding a fixed width to the shape.
The contour of the buffer is a polygon in which each exterior point lies
at a fixed distance (the width
) from the line segments of the
base shape
.
This requirement does not explicitly hold for the contour at the endings of the base shape
(if it is not closed), which should comply to the end cap style setting returned by
getEndCapStyle()
.
At the joins between two line segments of the base shape, the contour should comply
to the join style returned by getJoinStyle()
.
This image shows how the 2D contour of the geo buffer is defined. Each line segment with the applied
getWidth()
width}
defines a rectangle. These rectangles are then connected with each other by calculating the intersections
between their edges. In the example we used getEndCapStyle()
of CAP_ROUND
and getJoinStyle()
of JOIN_ROUND
To calculate the contour, the utility method
TLcdEllipsoidUtil.computeBufferContour2D
can be used for an ellipsoidal context and
TLcdCartesian.computeBufferContour2D
for a cartesian context.
In the simplest form, the contour is represented by a single polygon. In cases where the buffer intersects with itself, holes are formed and multiple polygons are used to define the contour.
In future versions, the predefined end cap and join styles may be extended.- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Specifies a butt (or flat) end cap style.static final int
Specifies a round end cap style.static final int
Specifies a round join. -
Method Summary
Modifier and TypeMethodDescriptionReturns the base shape of the buffer.int
Returns the end cap style of this buffer, which defines the representation of the contour at the endings of the base shape.int
Returns the join style for the contour of this buffer, which defines the representation of the contour at the joins between two line segments of the base shape.double
getWidth()
Returns the width of this buffer, expressed in meters and measured from the line segments of the base shape to the contour.Methods inherited from interface com.luciad.shape.ILcdBounded
getBounds
Methods inherited from interface com.luciad.util.ILcdCloneable
clone
Methods inherited from interface com.luciad.shape.ILcdShape
contains2D, contains2D, contains3D, contains3D, getFocusPoint
-
Field Details
-
CAP_ROUND
static final int CAP_ROUNDSpecifies a round end cap style.- See Also:
-
CAP_BUTT
static final int CAP_BUTTSpecifies a butt (or flat) end cap style.- See Also:
-
JOIN_ROUND
static final int JOIN_ROUNDSpecifies a round join.- See Also:
-
-
Method Details
-
getWidth
double getWidth()Returns the width of this buffer, expressed in meters and measured from the line segments of the base shape to the contour. The width is positive (width >= 0).- Returns:
- the width of the buffer.
-
getJoinStyle
int getJoinStyle()Returns the join style for the contour of this buffer, which defines the representation of the contour at the joins between two line segments of the base shape. This is alwaysJOIN_ROUND
.- Returns:
- the join style of the buffer.
-
getEndCapStyle
int getEndCapStyle()Returns the end cap style of this buffer, which defines the representation of the contour at the endings of the base shape. This is one ofCAP_ROUND
orCAP_BUTT
.- Returns:
- the end cap style of the buffer.
-
getBaseShape
ILcdShape getBaseShape()Returns the base shape of the buffer.- Returns:
- the base shape of the buffer.
-