Package gov.nasa.worldwind.view
Class BasicView
- java.lang.Object
-
- gov.nasa.worldwind.avlist.AVListImpl
-
- gov.nasa.worldwind.WWObjectImpl
-
- gov.nasa.worldwind.view.BasicView
-
- All Implemented Interfaces:
AVList
,MessageListener
,Restorable
,View
,WWObject
,java.beans.PropertyChangeListener
,java.util.EventListener
- Direct Known Subclasses:
BasicFlyView
,BasicOrbitView
public class BasicView extends WWObjectImpl implements View
A base class from whichView
implementations can be derived. CurrentlyBasicFlyView
andBasicOrbitView
are both derived fromBasicView
BasicView
models the view in terms of a geographic position, and a pitch, heading, and roll. It provides a mapping from that geocentric view model to a 3D graphics modelview matrix. BasicView also manages the projection matrix via aFrustum
.The view model is based on
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
COLLISION_NUM_ITERATIONS
protected static double
COLLISION_THRESHOLD
protected DrawContext
dc
protected static double
DEFAULT_DEPTH_RESOLUTION
The views's default worst-case depth resolution, in meters.protected boolean
detectCollisions
protected Position
eyePosition
protected double
farClipDistance
protected Angle
fieldOfView
The field of view in degrees.protected Frustum
frustum
protected Globe
globe
protected boolean
hadCollisions
protected Angle
heading
protected double
horizonDistance
protected Vec4
lastEyePoint
protected Position
lastEyePosition
protected Vec4
lastForwardVector
protected Frustum
lastFrustumInModelCoords
protected Vec4
lastUpVector
protected static double
MINIMUM_FAR_DISTANCE
protected static double
MINIMUM_NEAR_DISTANCE
protected Matrix
modelview
protected Matrix
modelviewInv
protected double
nearClipDistance
protected Angle
pitch
protected Matrix
projection
protected Angle
roll
protected ViewInputHandler
viewInputHandler
protected ViewPropertyLimits
viewLimits
protected java.awt.Rectangle
viewport
protected long
viewStateID
Identifier for the modelview matrix state.-
Fields inherited from interface gov.nasa.worldwind.View
VIEW_STOPPED
-
-
Constructor Summary
Constructors Constructor Description BasicView()
Construct a BasicView
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAnimator(Animator animator)
Add an animator to the this View.void
apply(DrawContext dc)
Calculates and applies thisView's
internal state to the graphics context in the specifieddc
.protected Position
computeEyePositionFromModelview()
protected double
computeFarClipDistance()
protected double
computeFarDistance(Position eyePosition)
protected double
computeHorizonDistance()
protected double
computeHorizonDistance(Position eyePosition)
protected double
computeNearClipDistance()
protected double
computeNearDistance(Position eyePosition)
double
computePixelSizeAtDistance(double distance)
Computes the dimension (in meters) that a screen pixel would cover at a given distance from the eye point (also in meters).Position
computePositionFromScreenPoint(double x, double y)
Computes the intersection of a line originating from the eye point and passing through (x, y) with theGlobe
.Line
computeRayFromScreenPoint(double x, double y)
Computes a line, in model coordinates, originating from the eye point, and passing through the point contained by (x, y) on theView's
projection plane (or after projection into model space).void
copyViewState(View view)
Copy the state of the givenView
.protected void
doApply(DrawContext dc)
protected void
doGetRestorableState(RestorableSupport rs, RestorableSupport.StateObject context)
protected void
doRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
Vec4
getCenterPoint()
Gets the center point of the view.Position
getCenterPosition()
Vec4
getCurrentEyePoint()
Returns the most up-to-date location of the eye in cartesian coordinates.Position
getCurrentEyePosition()
Returns the current geographic coordinates of this view's eye position, as determined from this view's current parameters.Vec4
getCurrentForwardVector()
Returns the most up-to-date forward vector.DrawContext
getDC()
Vec4
getEyePoint()
Returns the location of the eye in cartesian coordinates.Position
getEyePosition()
Returns the current geographic coordinates of this view's eye position, as computed for the most recent model traversal.double
getFarClipDistance()
Returns the far clipping plane distance, in eye coordinates.Angle
getFieldOfView()
Returns the horizontal field-of-view angle (the angle of visibility), or null if the implementation does not support a field-of-view.Vec4
getForwardVector()
Returns the forward axis in cartesian coordinates.Frustum
getFrustum()
Returns the viewingFrustum
in eye coordinates.Frustum
getFrustumInModelCoordinates()
Returns the viewingFrustum
in model coordinates.Globe
getGlobe()
Gets the globe associated with this view.Angle
getHeading()
Returns the view's current heading.double
getHorizonDistance()
Returns the horizon distance for this view's most recently used eye position.Matrix
getModelviewMatrix()
Returns the modelview matrix.double
getNearClipDistance()
Returns the near clipping plane distance, in eye coordinates.Angle
getPitch()
Returns the view's current pitch.Matrix
getProjectionMatrix()
Gets the projection matrix.java.lang.String
getRestorableState()
Returns an XML document string describing the object's state.Angle
getRoll()
Returns this View's current roll.Vec4
getUpVector()
Returns the up axis in cartesian coordinates.ViewInputHandler
getViewInputHandler()
Gets theViewInputHandler
being used to map input events toView
controls.java.awt.Rectangle
getViewport()
Returns the bounds (x, y, width, height) of the viewport.ViewPropertyLimits
getViewPropertyLimits()
Get theViewPropertyLimits
for this view.long
getViewStateID()
Get an identifier for the current state of the modelview matrix.void
goTo(Position position, double distance)
Animate to the specified position.boolean
hadCollisions()
boolean
isAnimating()
Determine if there are any animations active in theView
.boolean
isDetectCollisions()
static void
loadGLViewState(DrawContext dc, Matrix modelview, Matrix projection)
Sets the the opengl modelview and projection matrices to the given matrices.void
popReferenceCenter(DrawContext dc)
Removes the model-view matrix on top of the matrix stack, and restores the original matrix.Vec4
project(Vec4 modelPoint)
Maps aPoint
in model (cartesian) coordinates to aPoint
in screen coordinates.Vec4
project(Vec4 point, Matrix modelview, Matrix projection, java.awt.Rectangle viewport)
Transforms the specified object coordinates into window coordinates using the given modelview and projection matrices, and viewport.Matrix
pushReferenceCenter(DrawContext dc, Vec4 referenceCenter)
Defines and applies a new model-view matrix in which the world origin is located atreferenceCenter
.void
restoreState(java.lang.String stateInXml)
Restores the object's state to what is described in the specified XML document string.void
setDetectCollisions(boolean detectCollisions)
void
setEyePosition(Position eyePosition)
Sets the geographic position of the eye.protected void
setFarClipDistance(double clipDistance)
void
setFieldOfView(Angle fieldOfView)
Sets the horizontal field-of-view angle (the angle of visibility) to the specifiedfieldOfView
.void
setGlobe(Globe globe)
Set the globe associated with this view.void
setHeading(Angle heading)
Sets the heading of the view.protected void
setNearClipDistance(double clipDistance)
void
setOrientation(Position eyePosition, Position centerPosition)
Sets the location of the eye, and the center of the screen in geographic coordinates.void
setPitch(Angle pitch)
Sets the pitch of the view.Matrix
setReferenceCenter(DrawContext dc, Vec4 referenceCenter)
Sets the reference center matrix without pushing the stack.void
setRoll(Angle roll)
Set the roll of the view.void
setViewInputHandler(ViewInputHandler viewInputHandler)
protected void
setViewState(ViewUtil.ViewState modelCoords)
void
stopAnimations()
Stops any animations that are active in thisView
void
stopMovement()
Stops any movement associated with thisView
.Vec4
unProject(Vec4 windowPoint)
Maps aPoint
in screen coordinates to aPoint
in model coordinates.Vec4
unProject(Vec4 windowPoint, Matrix modelview, Matrix projection, java.awt.Rectangle viewport)
Maps the given window coordinates into model coordinates using the given matrices and viewport.protected void
updateModelViewStateID()
Update the modelview state identifier.-
Methods inherited from class gov.nasa.worldwind.WWObjectImpl
onMessage, propertyChange
-
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, 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
-
Methods inherited from interface gov.nasa.worldwind.event.MessageListener
onMessage
-
-
-
-
Field Detail
-
fieldOfView
protected Angle fieldOfView
The field of view in degrees.
-
nearClipDistance
protected double nearClipDistance
-
farClipDistance
protected double farClipDistance
-
modelview
protected Matrix modelview
-
modelviewInv
protected Matrix modelviewInv
-
projection
protected Matrix projection
-
viewport
protected java.awt.Rectangle viewport
-
frustum
protected Frustum frustum
-
lastFrustumInModelCoords
protected Frustum lastFrustumInModelCoords
-
viewLimits
protected ViewPropertyLimits viewLimits
-
dc
protected DrawContext dc
-
detectCollisions
protected boolean detectCollisions
-
hadCollisions
protected boolean hadCollisions
-
viewInputHandler
protected ViewInputHandler viewInputHandler
-
globe
protected Globe globe
-
eyePosition
protected Position eyePosition
-
horizonDistance
protected double horizonDistance
-
roll
protected Angle roll
-
pitch
protected Angle pitch
-
heading
protected Angle heading
-
lastEyePosition
protected Position lastEyePosition
-
lastEyePoint
protected Vec4 lastEyePoint
-
lastUpVector
protected Vec4 lastUpVector
-
lastForwardVector
protected Vec4 lastForwardVector
-
viewStateID
protected long viewStateID
Identifier for the modelview matrix state. This number is incremented when one of the fields that affects the modelview matrix is set.
-
MINIMUM_NEAR_DISTANCE
protected static final double MINIMUM_NEAR_DISTANCE
- See Also:
- Constant Field Values
-
MINIMUM_FAR_DISTANCE
protected static final double MINIMUM_FAR_DISTANCE
- See Also:
- Constant Field Values
-
DEFAULT_DEPTH_RESOLUTION
protected static final double DEFAULT_DEPTH_RESOLUTION
The views's default worst-case depth resolution, in meters. May be specified in the WorldWind configuration file as thegov.nasa.worldwind.avkey.DepthResolution
property. The default if not specified in the configuration is 3.0 meters.
-
COLLISION_THRESHOLD
protected static final double COLLISION_THRESHOLD
- See Also:
- Constant Field Values
-
COLLISION_NUM_ITERATIONS
protected static final int COLLISION_NUM_ITERATIONS
- See Also:
- Constant Field Values
-
-
Method Detail
-
getGlobe
public Globe getGlobe()
Description copied from interface:View
Gets the globe associated with this view. The Globe is updated at the beginning of each frame, duringView.apply()
.View.getGlobe()
returns null if called before the first invocation ofView.apply()
.
-
setGlobe
public void setGlobe(Globe globe)
Set the globe associated with this view. Note that the globe is reset each frame.- Parameters:
globe
- New globe.
-
getDC
public DrawContext getDC()
-
getViewInputHandler
public ViewInputHandler getViewInputHandler()
Description copied from interface:View
Gets theViewInputHandler
being used to map input events toView
controls.- Specified by:
getViewInputHandler
in interfaceView
- Returns:
- the
ViewInputHandler
being used to map input events toView
controls.
-
setViewInputHandler
public void setViewInputHandler(ViewInputHandler viewInputHandler)
-
isDetectCollisions
public boolean isDetectCollisions()
-
setDetectCollisions
public void setDetectCollisions(boolean detectCollisions)
-
hadCollisions
public boolean hadCollisions()
-
copyViewState
public void copyViewState(View view)
Description copied from interface:View
Copy the state of the givenView
.- Specified by:
copyViewState
in interfaceView
- Parameters:
view
- TheView
whose state is to be copied.
-
apply
public void apply(DrawContext dc)
Description copied from interface:View
Calculates and applies thisView's
internal state to the graphics context in the specifieddc
. All subsequently rendered objects use this new state. Upon return, the OpenGL graphics context reflects the values of this view, as do any computed values of the view, such as the modelview matrix, projection matrix and viewing frustum.
-
doApply
protected void doApply(DrawContext dc)
-
stopMovement
public void stopMovement()
Description copied from interface:View
Stops any movement associated with thisView
.- Specified by:
stopMovement
in interfaceView
-
getViewport
public java.awt.Rectangle getViewport()
Description copied from interface:View
Returns the bounds (x, y, width, height) of the viewport. The implementation will configure itself to render in this viewport. This value is computed in the most recent call toapply
.- Specified by:
getViewport
in interfaceView
- Returns:
- the Rectangle of the viewport.
-
getFrustum
public Frustum getFrustum()
Description copied from interface:View
Returns the viewingFrustum
in eye coordinates. TheFrustum
is the portion of viewable space defined by three sets of parallel 'clipping' planes. This value is computed in the most recent call toapply
.- Specified by:
getFrustum
in interfaceView
- Returns:
- viewing Frustum in eye coordinates.
-
getFrustumInModelCoordinates
public Frustum getFrustumInModelCoordinates()
Description copied from interface:View
Returns the viewingFrustum
in model coordinates. Model coordinate frustums are useful for performing visibility tests against world geometry. This frustum has the same shape as the frustum returned ingetFrustum
, but it has been transformed into model space. This value is computed in the most recent call toapply
.- Specified by:
getFrustumInModelCoordinates
in interfaceView
- Returns:
- viewing Frustum in model coordinates.
-
setFieldOfView
public void setFieldOfView(Angle fieldOfView)
Description copied from interface:View
Sets the horizontal field-of-view angle (the angle of visibility) to the specifiedfieldOfView
. This may be ignored if the implementation that do not support a field-of-view.- Specified by:
setFieldOfView
in interfaceView
- Parameters:
fieldOfView
- the horizontal field-of-view angle.
-
getNearClipDistance
public double getNearClipDistance()
Description copied from interface:View
Returns the near clipping plane distance, in eye coordinates. Implementations of theView
interface are not required to have a method for setting the near and far distance. Applications that need to control the near and far clipping distances can derive fromBasicOrbitView
orBasicFlyView
- Specified by:
getNearClipDistance
in interfaceView
- Returns:
- near clipping plane distance, in eye coordinates.
-
setNearClipDistance
protected void setNearClipDistance(double clipDistance)
-
getFarClipDistance
public double getFarClipDistance()
Description copied from interface:View
Returns the far clipping plane distance, in eye coordinates. Implementations of theView
interface are not required to have a method for setting the near and far distance. Applications that need to control the near and far clipping distances can derive fromBasicOrbitView
orBasicFlyView
- Specified by:
getFarClipDistance
in interfaceView
- Returns:
- far clipping plane distance, in eye coordinates.
-
setFarClipDistance
protected void setFarClipDistance(double clipDistance)
-
getModelviewMatrix
public Matrix getModelviewMatrix()
Description copied from interface:View
Returns the modelview matrix. The modelview matrix transforms model coordinates to eye coordinates. This matrix is constructed using the model space translation and orientation specific to each the implementation. This value is computed in the most recent call toapply
.- Specified by:
getModelviewMatrix
in interfaceView
- Returns:
- the current model-view matrix.
-
getViewStateID
public long getViewStateID()
Get an identifier for the current state of the modelview matrix. The modelview matrix transforms model coordinates to eye coordinates. This identifier can be used to determine if the view has changed state since a previous frame.- Specified by:
getViewStateID
in interfaceView
- Returns:
- an identifier for the current modelview matrix state.
-
getFieldOfView
public Angle getFieldOfView()
Description copied from interface:View
Returns the horizontal field-of-view angle (the angle of visibility), or null if the implementation does not support a field-of-view.- Specified by:
getFieldOfView
in interfaceView
- Returns:
- Angle of the horizontal field-of-view, or null if none exists.
-
project
public Vec4 project(Vec4 modelPoint)
Description copied from interface:View
Maps aPoint
in model (cartesian) coordinates to aPoint
in screen coordinates. The returned x and y are relative to the lower left hand screen corner, while z is the screen depth-coordinate. If the model point cannot be successfully mapped, this will return null.
-
unProject
public Vec4 unProject(Vec4 windowPoint)
Description copied from interface:View
Maps aPoint
in screen coordinates to aPoint
in model coordinates. The input x and y are relative to the lower left hand screen corner, while z is the screen depth-coordinate. If the screen point cannot be successfully mapped, this will return null.
-
getEyePoint
public Vec4 getEyePoint()
Description copied from interface:View
Returns the location of the eye in cartesian coordinates. This value is computed in the most recent call toapply
.- Specified by:
getEyePoint
in interfaceView
- Returns:
- Vec4 of the eye.
-
getCenterPoint
public Vec4 getCenterPoint()
Description copied from interface:View
Gets the center point of the view.- Specified by:
getCenterPoint
in interfaceView
- Returns:
- the center point of the view if that point is on the globe, otherwise, return null
-
getCenterPosition
public Position getCenterPosition()
-
getCurrentEyePoint
public Vec4 getCurrentEyePoint()
Description copied from interface:View
Returns the most up-to-date location of the eye in cartesian coordinates. UnlikeView.getEyePosition()
andView.getEyePoint()
, getCurrentEyePoint will return the View's immediate position.- Specified by:
getCurrentEyePoint
in interfaceView
- Returns:
- Vec4 of the eye.
-
getCurrentEyePosition
public Position getCurrentEyePosition()
Description copied from interface:View
Returns the current geographic coordinates of this view's eye position, as determined from this view's current parameters.Note: The value returned is not necessarily the value specified to
View.setEyePosition(gov.nasa.worldwind.geom.Position)
but is the eye position corresponding to this view's current parameters.- Specified by:
getCurrentEyePosition
in interfaceView
- Returns:
- the position of the eye corresponding to the current parameters of this view.
-
getEyePosition
public Position getEyePosition()
Description copied from interface:View
Returns the current geographic coordinates of this view's eye position, as computed for the most recent model traversal.Note: The value returned is not necessarily the value specified to
View.setEyePosition(gov.nasa.worldwind.geom.Position)
but is the eye position corresponding to this view's most recently applied state.- Specified by:
getEyePosition
in interfaceView
- Returns:
- the position of the eye corresponding to the most recent application of this view, or null if the view has not yet been applied.
-
setEyePosition
public void setEyePosition(Position eyePosition)
Description copied from interface:View
Sets the geographic position of the eye.- Specified by:
setEyePosition
in interfaceView
- Parameters:
eyePosition
- the eye position.
-
getHeading
public Angle getHeading()
Description copied from interface:View
Returns the view's current heading.- Specified by:
getHeading
in interfaceView
- Returns:
- Angle of the view's heading.
-
setHeading
public void setHeading(Angle heading)
Description copied from interface:View
Sets the heading of the view. The implementation may interpret this command in whatever way it chooses.- Specified by:
setHeading
in interfaceView
- Parameters:
heading
- The direction to aim the view in degrees
-
getPitch
public Angle getPitch()
Description copied from interface:View
Returns the view's current pitch.
-
setPitch
public void setPitch(Angle pitch)
Description copied from interface:View
Sets the pitch of the view. The implementation may interpret pitch as it chooses
-
setRoll
public void setRoll(Angle roll)
Description copied from interface:View
Set the roll of the view. The implementation may interpret roll as it chooses.
-
getRoll
public Angle getRoll()
Description copied from interface:View
Returns this View's current roll.
-
getUpVector
public Vec4 getUpVector()
Description copied from interface:View
Returns the up axis in cartesian coordinates. This value is computed in the most recent call toapply
.- Specified by:
getUpVector
in interfaceView
- Returns:
- Vec4 of the up axis.
-
getForwardVector
public Vec4 getForwardVector()
Description copied from interface:View
Returns the forward axis in cartesian coordinates. This value is computed in the most recent call toapply
.- Specified by:
getForwardVector
in interfaceView
- Returns:
- Vec4 of the forward axis.
-
getCurrentForwardVector
public Vec4 getCurrentForwardVector()
Returns the most up-to-date forward vector. UnlikegetForwardVector()
, this method will return the View's immediate forward vector.- Returns:
- Vec4 of the forward axis.
-
setViewState
protected void setViewState(ViewUtil.ViewState modelCoords)
-
setOrientation
public void setOrientation(Position eyePosition, Position centerPosition)
Description copied from interface:View
Sets the location of the eye, and the center of the screen in geographic coordinates. The implementation may interpret this command in whatever way it chooses, so long as the eye is placed at the specifiedeyePosition
, and the center of the screen is the specifiedcenterPosition
. Specifically, implementations must determine what the up direction will be given these parameters, and apply these parameters in a meaningful way.- Specified by:
setOrientation
in interfaceView
- Parameters:
eyePosition
- Position of they eye.centerPosition
- Position of the screen center.
-
stopAnimations
public void stopAnimations()
Description copied from interface:View
Stops any animations that are active in thisView
- Specified by:
stopAnimations
in interfaceView
-
isAnimating
public boolean isAnimating()
Description copied from interface:View
Determine if there are any animations active in theView
.- Specified by:
isAnimating
in interfaceView
- Returns:
- true if there are active animations, false otherwise.
-
goTo
public void goTo(Position position, double distance)
Description copied from interface:View
Animate to the specified position. The implementation is expected to animate theView
to look at the given position from the given elevation.
-
computeRayFromScreenPoint
public Line computeRayFromScreenPoint(double x, double y)
Description copied from interface:View
Computes a line, in model coordinates, originating from the eye point, and passing through the point contained by (x, y) on theView's
projection plane (or after projection into model space).- Specified by:
computeRayFromScreenPoint
in interfaceView
- Parameters:
x
- the horizontal coordinate originating from the left side ofView's
projection plane.y
- the vertical coordinate originating from the top ofView's
projection plane.- Returns:
- a line beginning at the
View's
eye point and passing through (x, y) transformed into model space.
-
computePositionFromScreenPoint
public Position computePositionFromScreenPoint(double x, double y)
Description copied from interface:View
Computes the intersection of a line originating from the eye point and passing through (x, y) with theGlobe
. Only the ellipsoid itself is considered; terrain elevations are not incorporated.- Specified by:
computePositionFromScreenPoint
in interfaceView
- Parameters:
x
- the horizontal coordinate originating from the left side ofView's
projection plane.y
- the vertical coordinate originating from the top ofView's
projection plane.- Returns:
- the point on the surface in polar coordinates.
-
computePixelSizeAtDistance
public double computePixelSizeAtDistance(double distance)
Description copied from interface:View
Computes the dimension (in meters) that a screen pixel would cover at a given distance from the eye point (also in meters). The distance is interpreted as the linear distance between the eye point and the world point in question. This computation assumes that pixels dimensions are square, and therefore returns a single dimension.- Specified by:
computePixelSizeAtDistance
in interfaceView
- Parameters:
distance
- the distance in meters from the eye point. This value must be positive but is otherwise unbounded.- Returns:
- the dimension of a pixel in meters at the given distance.
-
computeEyePositionFromModelview
protected Position computeEyePositionFromModelview()
-
getHorizonDistance
public double getHorizonDistance()
Description copied from interface:View
Returns the horizon distance for this view's most recently used eye position. The eye position changes when this view changes, so the horizon distance also changes when this view changes. The value returned is the value used during the most recent model traversal.- Specified by:
getHorizonDistance
in interfaceView
- Returns:
- the horizon position, in meters, or 0 if this view has not yet been applied.
-
computeHorizonDistance
protected double computeHorizonDistance()
-
computeHorizonDistance
protected double computeHorizonDistance(Position eyePosition)
-
getViewPropertyLimits
public ViewPropertyLimits getViewPropertyLimits()
Description copied from interface:View
Get theViewPropertyLimits
for this view.- Specified by:
getViewPropertyLimits
in interfaceView
- Returns:
- the
ViewPropertyLimits
for this view.
-
computeNearClipDistance
protected double computeNearClipDistance()
-
computeFarClipDistance
protected double computeFarClipDistance()
-
computeNearDistance
protected double computeNearDistance(Position eyePosition)
-
computeFarDistance
protected double computeFarDistance(Position eyePosition)
-
getProjectionMatrix
public Matrix getProjectionMatrix()
Description copied from interface:View
Gets the projection matrix. The projection matrix transforms eye coordinates to screen coordinates. This matrix is constructed using the projection parameters specific to each implementation ofView
. The methodView.getFrustum()
returns the geometry corresponding to this matrix. This value is computed in the most recent call toapply
.- Specified by:
getProjectionMatrix
in interfaceView
- Returns:
- the current projection matrix.
-
getRestorableState
public java.lang.String getRestorableState()
Description copied from interface:Restorable
Returns an XML document string describing the object's state. This state can be restored later by callingrestoreState
and passing the XML document.- Specified by:
getRestorableState
in interfaceRestorable
- Returns:
- an XML document string describing the object's state.
-
restoreState
public void restoreState(java.lang.String stateInXml)
Description copied from interface:Restorable
Restores the object's state to what is described in the specified XML document string.- Specified by:
restoreState
in interfaceRestorable
- Parameters:
stateInXml
- an XML document string describing an object's state.
-
updateModelViewStateID
protected void updateModelViewStateID()
Update the modelview state identifier. This method should be called whenever one of the fields that affects the modelview matrix is changed.
-
doGetRestorableState
protected void doGetRestorableState(RestorableSupport rs, RestorableSupport.StateObject context)
-
doRestoreState
protected void doRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
-
pushReferenceCenter
public Matrix pushReferenceCenter(DrawContext dc, Vec4 referenceCenter)
Description copied from interface:View
Defines and applies a new model-view matrix in which the world origin is located atreferenceCenter
. Geometry rendered after a call topushReferenceCenter
should be transformed with respect toreferenceCenter
, rather than the canonical origin (0, 0, 0). Calls topushReferenceCenter
must be followed bypopReferenceCenter
after rendering is complete. Note that calls toView.getModelviewMatrix()
will not return reference-center model-view matrix, but the original matrix.- Specified by:
pushReferenceCenter
in interfaceView
- Parameters:
dc
- the current WorldWind drawing context on which new model-view state will be applied.referenceCenter
- the location to become the new world origin.- Returns:
- a new model-view matrix with origin is at
referenceCenter
, or null if this method failed.
-
setReferenceCenter
public Matrix setReferenceCenter(DrawContext dc, Vec4 referenceCenter)
Description copied from interface:View
Sets the reference center matrix without pushing the stack.- Specified by:
setReferenceCenter
in interfaceView
- Parameters:
dc
- the drawing context.referenceCenter
- the new reference center- Returns:
- a new model-view matrix with origin is at
referenceCenter
, or null if this method failed. - See Also:
View.pushReferenceCenter(gov.nasa.worldwind.render.DrawContext, gov.nasa.worldwind.geom.Vec4)
-
popReferenceCenter
public void popReferenceCenter(DrawContext dc)
Removes the model-view matrix on top of the matrix stack, and restores the original matrix.- Specified by:
popReferenceCenter
in interfaceView
- Parameters:
dc
- the current WorldWind drawing context on which the original matrix will be restored.- Throws:
java.lang.IllegalArgumentException
- ifdc
is null, or if theGlobe
orGL
instances indc
are null.
-
project
public Vec4 project(Vec4 point, Matrix modelview, Matrix projection, java.awt.Rectangle viewport)
Transforms the specified object coordinates into window coordinates using the given modelview and projection matrices, and viewport.- Parameters:
point
- The object coordinate to transformmodelview
- The modelview matrixprojection
- The projection matrixviewport
- The viewport- Returns:
- the transformed coordinates
-
unProject
public Vec4 unProject(Vec4 windowPoint, Matrix modelview, Matrix projection, java.awt.Rectangle viewport)
Maps the given window coordinates into model coordinates using the given matrices and viewport.- Parameters:
windowPoint
- the window pointmodelview
- the modelview matrixprojection
- the projection matrixviewport
- the window viewport- Returns:
- the unprojected point
-
loadGLViewState
public static void loadGLViewState(DrawContext dc, Matrix modelview, Matrix projection)
Sets the the opengl modelview and projection matrices to the given matrices.- Parameters:
dc
- the drawing contextmodelview
- the modelview matrixprojection
- the projection matrix
-
addAnimator
public void addAnimator(Animator animator)
Add an animator to the this View. The View does not start the animator.- Specified by:
addAnimator
in interfaceView
- Parameters:
animator
- theAnimator
to be added
-
-