public static class Multipolygon.PolyData extends Multipolygon.JoinedWay
Modifier and Type | Class and Description |
---|---|
static class |
Multipolygon.PolyData.Intersection
The intersection type used for
contains(java.awt.geom.Path2D.Double) |
Modifier and Type | Field and Description |
---|---|
private java.awt.geom.Rectangle2D |
bounds |
private java.util.List<Multipolygon.PolyData> |
inners |
private java.awt.geom.Path2D.Double |
poly |
nodes, selected, wayIds
Modifier | Constructor and Description |
---|---|
private |
PolyData(java.util.List<Node> nodes,
boolean selected,
java.util.Collection<java.lang.Long> wayIds) |
|
PolyData(Multipolygon.JoinedWay joinedWay)
Constructs a new
PolyData from a Multipolygon.JoinedWay . |
|
PolyData(Multipolygon.PolyData copy)
Constructs a new
PolyData from an existing PolyData . |
|
PolyData(Way closedWay)
Constructs a new
PolyData from a closed way. |
Modifier and Type | Method and Description |
---|---|
void |
addInner(Multipolygon.PolyData inner)
Adds an inner polygon
|
private void |
appendInner(java.awt.geom.Path2D.Double inner) |
private void |
buildPoly() |
Multipolygon.PolyData.Intersection |
contains(java.awt.geom.Path2D.Double p)
Checks if this multipolygon contains or crosses an other polygon
|
java.awt.geom.Path2D.Double |
get()
Gets the polygon outline and interior as java path
|
Geometry.AreaAndPerimeter |
getAreaAndPerimeter(Projection projection)
Calculate area and perimeter length in the given projection.
|
java.awt.geom.Rectangle2D |
getBounds()
Gets the bounds as
Rectangle2D in east/north space. |
java.util.List<Multipolygon.PolyData> |
getInners()
Gets a list of all inner polygons.
|
boolean |
isClosed()
Determines if this joined way is closed.
|
void |
nodeMoved(NodeMovedEvent event)
Check if this polygon was changed by a node move
|
private void |
resetNodes(DataSet dataSet) |
private void |
resetPoly() |
void |
wayNodesChanged(WayNodesChangedEvent event)
Check if this polygon was affected by a way change
|
getFirstNode, getLastNode, getNodes, getWayIds, isSelected, setSelected
private final java.awt.geom.Path2D.Double poly
private java.awt.geom.Rectangle2D bounds
private final java.util.List<Multipolygon.PolyData> inners
public PolyData(Way closedWay)
PolyData
from a closed way.closedWay
- closed waypublic PolyData(Multipolygon.JoinedWay joinedWay)
PolyData
from a Multipolygon.JoinedWay
.joinedWay
- joined wayprivate PolyData(java.util.List<Node> nodes, boolean selected, java.util.Collection<java.lang.Long> wayIds)
public PolyData(Multipolygon.PolyData copy)
PolyData
from an existing PolyData
.copy
- existing instanceprivate void buildPoly()
public Multipolygon.PolyData.Intersection contains(java.awt.geom.Path2D.Double p)
p
- The path to check. Needs to be in east/north space.Multipolygon.PolyData.Intersection
constantpublic void addInner(Multipolygon.PolyData inner)
inner
- The polygon to add as inner polygon.private void appendInner(java.awt.geom.Path2D.Double inner)
public java.awt.geom.Path2D.Double get()
public java.awt.geom.Rectangle2D getBounds()
Rectangle2D
in east/north space.public java.util.List<Multipolygon.PolyData> getInners()
private void resetNodes(DataSet dataSet)
private void resetPoly()
public void nodeMoved(NodeMovedEvent event)
event
- The node move eventpublic void wayNodesChanged(WayNodesChangedEvent event)
event
- The way eventpublic boolean isClosed()
Multipolygon.JoinedWay
isClosed
in class Multipolygon.JoinedWay
true
if this joined way is closedpublic Geometry.AreaAndPerimeter getAreaAndPerimeter(Projection projection)
projection
- the projection to use for the calculation, null
defaults to Main.getProjection()