NASA World Wind

gov.nasa.worldwind.render.airspaces
Class Curtain

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.render.airspaces.AbstractAirspace
          extended by gov.nasa.worldwind.render.airspaces.Curtain
All Implemented Interfaces:
AVList, ExtentHolder, Movable, Airspace, Renderable, Restorable

public class Curtain
extends AbstractAirspace

A curtain is a series of adjacent rectangular planes. The upper edges of the planes are the connecting line segments between the vertices of a polyline. The lower edges of the planes are parallel to the upper edges at a specified altitude.


Nested Class Summary
protected static class Curtain.CurtainGeometry
           
protected static class Curtain.SectionRenderInfo
           
 
Nested classes/interfaces inherited from class gov.nasa.worldwind.render.airspaces.AbstractAirspace
AbstractAirspace.AirspaceInfo
 
Field Summary
protected  boolean applyPositionAltitude
           
protected  List<LatLon> locations
           
protected  String pathType
           
protected  double splitThreshold
           
 
Fields inherited from class gov.nasa.worldwind.render.airspaces.AbstractAirspace
airspaceInfo, ARC_SLICES, DISABLE_TERRAIN_CONFORMANCE, EXPIRY_TIME, GEOMETRY_CACHE_KEY, GEOMETRY_CACHE_NAME, GLOBE_KEY, LENGTH_SLICES, LOOPS, PILLARS, SLICES, SPLIT_THRESHOLD, STACKS, SUBDIVISIONS, VERTICAL_EXAGGERATION
 
Fields inherited from interface gov.nasa.worldwind.render.airspaces.Airspace
DRAW_STYLE_FILL, DRAW_STYLE_OUTLINE
 
Constructor Summary
Curtain()
           
Curtain(AirspaceAttributes attributes)
           
Curtain(Iterable<? extends LatLon> locations)
           
 
Method Summary
protected  void addLocations(Iterable<? extends LatLon> newLocations)
           
protected  Extent computeExtent(Globe globe, double verticalExaggeration)
           
protected  List<Vec4> computeMinimalGeometry(Globe globe, double verticalExaggeration)
           
protected  Vec4 computeReferenceCenter(DrawContext dc)
           
protected  void doGetRestorableState(RestorableSupport rs, RestorableSupport.StateObject context)
           
protected  void doMoveTo(Position oldRef, Position newRef)
           
protected  void doRenderGeometry(DrawContext dc, String drawStyle)
           
protected  void doRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
           
protected  void drawCurtainFill(DrawContext dc, int count, LatLon[] locations, String pathType, double splitThreshold, double[] altitudes, boolean[] terrainConformant, Vec4 referenceCenter)
           
protected  void drawCurtainOutline(DrawContext dc, int count, LatLon[] locations, String pathType, double splitThreshold, double[] altitudes, boolean[] terrainConformant, Vec4 referenceCenter)
           
protected  Curtain.CurtainGeometry getCurtainGeometry(DrawContext dc, int count, LatLon[] locations, String pathType, double splitThreshold, double[] altitudes, boolean[] terrainConformant, Vec4 referenceCenter)
           
 Iterable<LatLon> getLocations()
          Returns the curtain's locations.
 String getPathType()
           
 Position getReferencePosition()
          A position associated with the object that indicates its aggregate geographic position.
protected  int getSectionFillDrawMode()
           
protected  int getSectionFillIndexCount(int pillars)
           
protected  int getSectionOutlineDrawMode()
           
protected  int getSectionOutlineIndexCount(int pillars)
           
protected  int getSectionPillarCount(DrawContext dc, LatLon begin, LatLon end, String pathType, double splitThreshold)
           
protected  int getSectionVertexCount(int pillars)
           
protected  double getSplitThreshold()
           
 boolean isApplyPositionAltitude()
           
protected  void makeCurtainGeometry(DrawContext dc, int count, LatLon[] locations, String pathType, double splitThreshold, double[] altitudes, boolean[] terrainConformant, Vec4 referenceCenter, Curtain.CurtainGeometry dest)
           
protected  void makeDefaultDetailLevels()
           
protected  void makeSectionFillIndices(int pillars, int vertexPos, int indexPos, int[] dest)
           
protected  void makeSectionInfo(DrawContext dc, int count, LatLon[] locations, String pathType, double splitThreshold, Curtain.SectionRenderInfo[] ri, int[] counts)
           
protected  void makeSectionOutlineIndices(int pillars, int vertexPos, int indexPos, int[] dest)
           
protected  void makeSectionVertices(DrawContext dc, LatLon begin, LatLon end, String pathType, double[] altitude, boolean[] terrainConformant, int pillars, int vertexPos, float[] dest, Vec4 referenceCenter)
           
protected  void makeSegment(Globe globe, LatLon locA, LatLon locB, List<LatLon> tessellatedLocations)
           
protected  void makeTessellatedLocations(Globe globe, List<LatLon> tessellatedLocations)
           
 void setApplyPositionAltitude(boolean applyPositionAltitude)
           
 void setLocations(Iterable<? extends LatLon> locations)
          Sets the curtain's locations, in geographic coordinates.
 void setPathType(String pathType)
           
protected  void setSplitThreshold(double splitThreshold)
           
 
Methods inherited from class gov.nasa.worldwind.render.airspaces.AbstractAirspace
addDetailLevels, adjustForGroundReference, clearElevationMap, computeDetailLevel, computeElevationAt, computeExtent, computeEyeDistance, computeMinimalGeometry, computePointFromPosition, computeReferencePosition, doRender, doRenderExtent, getAirspaceInfo, getAltitudeDatum, getAltitudes, getAltitudes, getAttributes, getDetailLevels, getExpiryRange, getExpiryTime, getExtent, getExtent, getGeometryBuilder, getGeometryCache, getGroundReference, getRenderer, getRestorableState, isAirspaceCollapsed, isAirspaceVisible, isEnableLevelOfDetail, isExpired, isTerrainConforming, isVisible, makeExtremePoints, makeOrderedRenderable, move, moveTo, nextExpiryTime, render, renderExtent, renderGeometry, restoreState, setAltitude, setAltitudeDatum, setAltitudes, setAttributes, setDetailLevels, setEnableLevelOfDetail, setExpiryRange, setExpiryTime, setExtentOutOfDate, setGeometryBuilder, setGroundReference, setRenderer, setTerrainConforming, setTerrainConforming, setVisible, updateExpiryCriteria
 
Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gov.nasa.worldwind.avlist.AVList
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 

Field Detail

applyPositionAltitude

protected boolean applyPositionAltitude

locations

protected List<LatLon> locations

pathType

protected String pathType

splitThreshold

protected double splitThreshold
Constructor Detail

Curtain

public Curtain()

Curtain

public Curtain(AirspaceAttributes attributes)

Curtain

public Curtain(Iterable<? extends LatLon> locations)
Method Detail

addLocations

protected void addLocations(Iterable<? extends LatLon> newLocations)

computeExtent

protected Extent computeExtent(Globe globe,
                               double verticalExaggeration)
Specified by:
computeExtent in class AbstractAirspace

computeMinimalGeometry

protected List<Vec4> computeMinimalGeometry(Globe globe,
                                            double verticalExaggeration)
Specified by:
computeMinimalGeometry in class AbstractAirspace

computeReferenceCenter

protected Vec4 computeReferenceCenter(DrawContext dc)

doGetRestorableState

protected void doGetRestorableState(RestorableSupport rs,
                                    RestorableSupport.StateObject context)
Overrides:
doGetRestorableState in class AbstractAirspace

doMoveTo

protected void doMoveTo(Position oldRef,
                        Position newRef)
Overrides:
doMoveTo in class AbstractAirspace

doRenderGeometry

protected void doRenderGeometry(DrawContext dc,
                                String drawStyle)
Specified by:
doRenderGeometry in class AbstractAirspace

doRestoreState

protected void doRestoreState(RestorableSupport rs,
                              RestorableSupport.StateObject context)
Overrides:
doRestoreState in class AbstractAirspace

drawCurtainFill

protected void drawCurtainFill(DrawContext dc,
                               int count,
                               LatLon[] locations,
                               String pathType,
                               double splitThreshold,
                               double[] altitudes,
                               boolean[] terrainConformant,
                               Vec4 referenceCenter)

drawCurtainOutline

protected void drawCurtainOutline(DrawContext dc,
                                  int count,
                                  LatLon[] locations,
                                  String pathType,
                                  double splitThreshold,
                                  double[] altitudes,
                                  boolean[] terrainConformant,
                                  Vec4 referenceCenter)

getCurtainGeometry

protected Curtain.CurtainGeometry getCurtainGeometry(DrawContext dc,
                                                     int count,
                                                     LatLon[] locations,
                                                     String pathType,
                                                     double splitThreshold,
                                                     double[] altitudes,
                                                     boolean[] terrainConformant,
                                                     Vec4 referenceCenter)

getLocations

public Iterable<LatLon> getLocations()
Returns the curtain's locations.

Returns:
the curtain's locations in geographic coordinates.

getPathType

public String getPathType()

getReferencePosition

public Position getReferencePosition()
Description copied from interface: Movable
A position associated with the object that indicates its aggregate geographic position. The chosen position varies among implementers of this interface. For objects defined by a list of positions, the reference position is typically the first position in the list. For symmetric objects the reference position is often the center of the object. In many cases the object's reference position may be explicitly specified by the application.

Returns:
the object's reference position, or null if no reference position is available.

getSectionFillDrawMode

protected int getSectionFillDrawMode()

getSectionFillIndexCount

protected int getSectionFillIndexCount(int pillars)

getSectionOutlineDrawMode

protected int getSectionOutlineDrawMode()

getSectionOutlineIndexCount

protected int getSectionOutlineIndexCount(int pillars)

getSectionPillarCount

protected int getSectionPillarCount(DrawContext dc,
                                    LatLon begin,
                                    LatLon end,
                                    String pathType,
                                    double splitThreshold)

getSectionVertexCount

protected int getSectionVertexCount(int pillars)

getSplitThreshold

protected double getSplitThreshold()

isApplyPositionAltitude

public boolean isApplyPositionAltitude()

makeCurtainGeometry

protected void makeCurtainGeometry(DrawContext dc,
                                   int count,
                                   LatLon[] locations,
                                   String pathType,
                                   double splitThreshold,
                                   double[] altitudes,
                                   boolean[] terrainConformant,
                                   Vec4 referenceCenter,
                                   Curtain.CurtainGeometry dest)

makeDefaultDetailLevels

protected void makeDefaultDetailLevels()

makeSectionFillIndices

protected void makeSectionFillIndices(int pillars,
                                      int vertexPos,
                                      int indexPos,
                                      int[] dest)

makeSectionInfo

protected void makeSectionInfo(DrawContext dc,
                               int count,
                               LatLon[] locations,
                               String pathType,
                               double splitThreshold,
                               Curtain.SectionRenderInfo[] ri,
                               int[] counts)

makeSectionOutlineIndices

protected void makeSectionOutlineIndices(int pillars,
                                         int vertexPos,
                                         int indexPos,
                                         int[] dest)

makeSectionVertices

protected void makeSectionVertices(DrawContext dc,
                                   LatLon begin,
                                   LatLon end,
                                   String pathType,
                                   double[] altitude,
                                   boolean[] terrainConformant,
                                   int pillars,
                                   int vertexPos,
                                   float[] dest,
                                   Vec4 referenceCenter)

makeSegment

protected void makeSegment(Globe globe,
                           LatLon locA,
                           LatLon locB,
                           List<LatLon> tessellatedLocations)

makeTessellatedLocations

protected void makeTessellatedLocations(Globe globe,
                                        List<LatLon> tessellatedLocations)

setApplyPositionAltitude

public void setApplyPositionAltitude(boolean applyPositionAltitude)

setLocations

public void setLocations(Iterable<? extends LatLon> locations)
Sets the curtain's locations, in geographic coordinates.

Parameters:
locations - a list of geographic coordinates (latitude and longitude) specifying the upper edge of the shape.
Throws:
IllegalArgumentException - if the locations list is null or contains fewer than two points.

setPathType

public void setPathType(String pathType)

setSplitThreshold

protected void setSplitThreshold(double splitThreshold)

NASA World Wind