Package gov.nasa.worldwind.util
Class SectorVisibilityTree
- java.lang.Object
-
- gov.nasa.worldwind.util.SectorVisibilityTree
-
public class SectorVisibilityTree extends java.lang.Object
Determines the visible sectors at a specifed resolution within the draw context's current visible sector.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
SectorVisibilityTree.Context
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Object
globeStateKey
protected java.util.HashMap<Sector,Extent>
newExtents
protected java.util.HashMap<Sector,Extent>
prevExtents
protected java.util.ArrayList<Sector>
sectors
protected double
sectorSize
protected long
timeStamp
protected DecisionTree<Sector,SectorVisibilityTree.Context>
tree
-
Constructor Summary
Constructors Constructor Description SectorVisibilityTree()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearSectors()
java.util.List<Sector>
getSectors()
double
getSectorSize()
long
getTimeStamp()
java.util.List<Sector>
refresh(DrawContext dc, double sectorSize)
Determines the visible sectors at a specifed resolution within the draw context's current visible sector.java.util.List<Sector>
refresh(DrawContext dc, double sectorSize, Sector searchSector)
Determines the visible sectors at a specified resolution within a specified sector.java.util.List<Sector>
refresh(DrawContext dc, double sectorSize, java.util.List<Sector> searchSectors)
Determines the visible sectors at a specified resolution within a collection of sectors.void
setTimeStamp(long timeStamp)
protected void
swapCylinderLists(DrawContext dc)
-
-
-
Field Detail
-
sectorSize
protected double sectorSize
-
globeStateKey
protected java.lang.Object globeStateKey
-
sectors
protected java.util.ArrayList<Sector> sectors
-
timeStamp
protected long timeStamp
-
tree
protected DecisionTree<Sector,SectorVisibilityTree.Context> tree
-
-
Method Detail
-
getSectorSize
public double getSectorSize()
-
getSectors
public java.util.List<Sector> getSectors()
-
getTimeStamp
public long getTimeStamp()
-
setTimeStamp
public void setTimeStamp(long timeStamp)
-
clearSectors
public void clearSectors()
-
refresh
public java.util.List<Sector> refresh(DrawContext dc, double sectorSize)
Determines the visible sectors at a specifed resolution within the draw context's current visible sector.- Parameters:
dc
- the current draw contextsectorSize
- the granularity of sector visibility, in degrees. All visible sectors of this size are found. The value must be in the range, 1 second <= sectorSize <= 180 degrees.- Returns:
- the list of visible sectors. The list will be empty if no sectors are visible.
- Throws:
java.lang.IllegalArgumentException
- if the draw context is null.
-
refresh
public java.util.List<Sector> refresh(DrawContext dc, double sectorSize, Sector searchSector)
Determines the visible sectors at a specified resolution within a specified sector.- Parameters:
dc
- the current draw contextsectorSize
- the granularity of sector visibility, in degrees. All visible sectors of this size are found. The value must be in the range, 1 second <= sectorSize <= 180 degrees.searchSector
- the overall sector for which to determine visibility. May be null, in which case the current visible sector of the draw context is used.- Returns:
- the list of visible sectors. The list will be empty if no sectors are visible.
- Throws:
java.lang.IllegalArgumentException
- if the draw context is null, the sector size is less than or equal to zero, or the search sector list is null.
-
refresh
public java.util.List<Sector> refresh(DrawContext dc, double sectorSize, java.util.List<Sector> searchSectors)
Determines the visible sectors at a specified resolution within a collection of sectors. This method can be used to recursively determine visible sectors: the output of one invocation can be passed as an argument to the next invocation.- Parameters:
dc
- the current draw contextsectorSize
- the granularity of sector visibility, in degrees. All visible sectors of this size are The value must be in the range, 1 second <= sectorSize <= 180 degrees. found.searchSectors
- the sectors for which to determine visibility.- Returns:
- the list of visible sectors. The list will be empty if no sectors are visible.
- Throws:
java.lang.IllegalArgumentException
- if the draw context is null, the sector size is less than or equal to zero or the search sector list is null.
-
swapCylinderLists
protected void swapCylinderLists(DrawContext dc)
-
-