com.esri.arcgis.globecore
Class GlobeCamera

java.lang.Object
  extended by com.esri.arcgis.globecore.GlobeCamera
All Implemented Interfaces:
ICamera, IGlobeCamera, IGlobeViewUtil, com.esri.arcgis.interop.RemoteObjRef, Serializable

public class GlobeCamera
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, ICamera, IGlobeCamera, IGlobeViewUtil

The globe camera component.

Description

A virtual globe camera defines the global and perspective viewing of data on the globe. The camera has observer, target, and orientation properties that can be related to real cameras. The observer represents the position of the camera itself in 3D space. The target is the 3D location where the camera is pointing to. The orientation mode defines whether the camera is in surface or global navigation mode. When you navigate, changing perspective, you are really manipulating the properties of the camera.

Access to a camera's properties and methods is made through the IGlobeCamera and ICamera interfaces.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
GlobeCamera()
          Constructs a GlobeCamera using ArcGIS Engine.
GlobeCamera(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
GlobeCamera theGlobeCamera = (GlobeCamera) obj;
 
Method Summary
 boolean canSeeMBB(IEnvelope pExtent)
          Indicates if the camera can see any portion of the given extent.
 boolean canSeeSphere(IPoint pCenter, double radius)
          Indicates if the camera can see any portion of the given sphere.
 boolean equals(Object o)
          Compare this object with another
 void geocentricToGeographic(double x, double y, double z, double[] pLong_dd, double[] pLat_dd, double[] pElev_meters)
          Transform normalized geocentric coordinates to geographic coordinates.
 void geocentricToWindow(double x, double y, double z, int[] pWinX, int[] pWinY)
          Get the window coordinates corresponding to a geocentric location, or -1 if not visible.
 void geographicToGeocentric(double long_dd, double lat_dd, double elev_meters, double[] pX, double[] pY, double[] pZ)
          Transform geographical coordinates to normalized geocentric coordinates.
 void geographicToWindow(double long_dd, double lat_dd, double elev_meters, int[] pWinX, int[] pWinY)
          Get the window coordinates corresponding to a geographical location, or -1 if not visible.
 void getAccurateViewDirection(double[] pViewX, double[] pViewY, double[] pViewZ)
          Get the high precision normalized view direction.
 double getAzimuth()
          The polar azimuth of the observer relative to the target.
static String getClsid()
          getClsid.
 void getFrustumSkewRect(double[] xmin, double[] xmax, double[] ymin, double[] ymax)
          Values are between 0 and 1 -- define the skew rectangle.
 IRay getIdentifyRay(int dx, int dy)
          Returns the ray that corresponds to given screen coordinates.
 IVector3D getIdentifyVector(IPoint pCursor)
          Returns the vector that corresponds to the given screen location.
 double getInclination()
          The polar inclination of the observer relative to the target.
 void getIsPointVisible(double x, double y, double z, boolean[] pOutsideView, boolean[] pTooClose, boolean[] pTooFar)
          Detect if point with geocentric coordinates is outside the pyramidal view, too close to the viewpoint, or too far from it.
 void getLocalOrientation(double[] plocalAzi, double[] pLocalIncl, double[] pLocalRoll)
          Get the azimuth, inclination and roll angles relative to the current target on surface.
 int getNavigationType()
          The navigation type.
 IPoint getObserver()
          The observer's position.
 void getObserverLatLonAlt(double[] pLatDD, double[] pLonDD, double[] pAltKMs)
          Set the observer location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.
 int getOrientationMode()
          The orientation mode.
 IEnvelope getOrthoViewingExtent()
          The extent visible by the camera in orthographic view.
 int getProjectionType()
          The type of projection.
 double getRollAngle()
          The roll angle in degrees.
 double getRollOffset()
          The offset for the roll angle in degrees.
 double getScale()
          The orthographic projection scale.
 double getScalingDistance()
          The current distance used for scale range comparisons.
 IPoint getTarget()
          The target's position.
 void getTargetLatLonAlt(double[] pLatDD, double[] pLonDD, double[] pAltKMs)
          Get the target location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.
 IVector3D getUpDirection()
          The camera's up-vector.
 double getViewFieldAngle()
          The view-field angle in degrees.
 double getViewingDistance()
          The viewing distance between the observer and the target.
 void getViewingFrustrum(_WKSPointZ[] pNearBottomLeft, _WKSPointZ[] pNearBottomRight, _WKSPointZ[] pNearTopLeft, _WKSPointZ[] pNearTopRight, _WKSPointZ[] pFarBottomLeft, _WKSPointZ[] pFarBottomRight, _WKSPointZ[] pFarTopLeft, _WKSPointZ[] pFarTopRight)
          Get the viewing frustum as a truncated pyramid, a set of eight points in geocentric coordinates.
 int hashCode()
          the hashcode for this object
 void hTurnAround(double dAzimuth)
          Turns the camera horizontally around observer by the given azimuth angle.
 boolean isMultiPhaseRendering()
          The state of multi-phase rendering.
 boolean isUsable()
          Indicates if the camera has valid parameters.
 void levelObsToTarget()
          Levels the observer to the target.
 void levelTargetToObs()
          Levels the target to the observer.
 void move(int direction, double factor)
          Moves the camera in the specified direction.
 void pan(IPoint startPoint, IPoint endPoint)
          Moves both the observer and the target so that the object picked as the starting point on screen assumes the ending-point position.
 void polarUpdate(double distanceFactor, double dAzimuth, double dInclination, boolean bLimitInclination)
          Updates the observer's location by given polar increments.
 void propertiesChanged()
          Sets camera's dirty flag.
 void queryDistanceToMBB(IEnvelope pExtent, double[] distance)
          Returns the distance to the given extent.
 void queryDistanceToSphere(IPoint pCenter, double radius, double[] distance)
          Returns the distance to the given sphere.
 void queryDistanceToSphereCenter(IPoint pCenter, double radius, double[] distance)
          Returns the distance to the given sphere's center.
 void queryIdentifyVector(int dx, int dy, IVector3D pIdentifyVect)
          Returns the vector that corresponds to given screen coordinates.
 void queryOrthoViewingPlatform(IEnvelope pInExtent, IEnvelope pOutExtent, double[] pScale)
          Returns orthographic projection viewing parameters corresponding to the given extent.
 void queryViewingPlatformMBB(IEnvelope pExtent, double[] pNearPlane, double[] pFarPlane, double[] pAngle, double[] pAspect)
          Returns the viewing parameters corresponding to the given extent.
 void queryViewingPlatformSphere(IPoint pCenter, double radius, double[] pNearPlane, double[] pFarPlane, double[] pAngle, double[] pAspect)
          Returns the viewing parameters corresponding to the given spherical extent.
 void queryVisibleGeographicExtent(IEnvelope extent)
          Visible geographic extent of Globe sphere.
 void recalcUp()
          Updates the up-vector.
 void replayFrame(ISceneGraph pSceneGraph)
          Renders a frame.
 void rotate(double angle)
          Rotates the observer horizontally around the target by a given angle in degrees.
 void setAccurateViewDirection(double viewX, double viewY, double viewZ)
          Set the high precision normalized view direction.
 void setAzimuth(double azimuth)
          The polar azimuth of the observer relative to the target.
 void setDefaultsMBB(IEnvelope pExtent)
          Positions camera so that the entire given extent can be seen.
 void setDefaultsSphere(IPoint pCenter, double radius)
          Positions camera so that the entire given spherical extent can be seen.
 void setFrustumSkewRect(double xmin, double xmax, double ymin, double ymax)
          Values are between 0 and 1 -- define the skew rectangle.
 void setInclination(double inclination)
          The polar inclination of the observer relative to the target.
 void setLocalOrigin(double x, double y, double rhs3)
          The local origin for high precision OpenGL custom drawing.
 void setMultiPhaseRendering(boolean pbMultiPhase)
          The state of multi-phase rendering.
 void setNavigationType(int pType)
          The navigation type.
 void setObserver(IPoint observer)
          The observer's position.
 void setObserverLatLonAlt(double latDD, double lonDD, double altKMs)
          Set the observer location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.
 void setOrientationMode(int pMode)
          The orientation mode.
 void setProjectionType(int projectionType)
          The type of projection.
 void setRollAngle(double rollAngle)
          The roll angle in degrees.
 void setRollOffset(double pRollAngle)
          The offset for the roll angle in degrees.
 void setTarget(IPoint target)
          The target's position.
 void setTargetAtCenter()
          Sets the camera target at the center of the globe.
 void setTargetLatLonAlt(double latDD, double lonDD, double altKMs)
          Set the target location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.
 void setToZoomToExtents(IEnvelope pExtent, IGlobe pGlobe, ISceneViewer pSceneViewer)
          Set the Camera to Zoom to an Extent.
 void setUpDirection(IVector3D upVector)
          The camera's up-vector.
 void setVerticalExaggeration(double rhs1)
          Adapts the camera to the scene's vertical exaggeration.
 void setViewFieldAngle(double viewFieldAngle)
          The view-field angle in degrees.
 void setViewingDistance(double distance)
          The viewing distance between the observer and the target.
 void windowToGeocentric(IGlobeDisplay pDisplay, ISceneViewer pViewer, int winX, int winY, boolean bUseZBufferValue, double[] pX, double[] pY, double[] pZ)
          Get the geocentric coordinates in the line of sight defined by the window coordinates.
 void windowToGeographic(IGlobeDisplay pDisplay, ISceneViewer pViewer, int winX, int winY, boolean bUseZBufferValue, double[] pLon, double[] pLat, double[] pAlt)
          Get the geographic coordinates in the line of sight defined by the window coordinates.
 void zoom(double ratio)
          Zooms in or out by moving the observer according to the required ratio between the new and previous viewing distances.
 void zoomToRect(IEnvelope pExtent)
          Zooms to the given screen extent.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

GlobeCamera

public GlobeCamera()
            throws IOException,
                   UnknownHostException
Constructs a GlobeCamera using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

GlobeCamera

public GlobeCamera(Object obj)
            throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
GlobeCamera theGlobeCamera = (GlobeCamera) obj;

Construct a GlobeCamera using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to GlobeCamera.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getObserver

public IPoint getObserver()
                   throws IOException,
                          AutomationException
The observer's position.

Remarks

The observer represents the origin, or point of view, of the camera. It uses coordinates that are in the same unit of measure as the scene itself.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getObserver in interface ICamera
Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setObserver

public void setObserver(IPoint observer)
                 throws IOException,
                        AutomationException
The observer's position.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setObserver in interface ICamera
Parameters:
observer - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTarget

public IPoint getTarget()
                 throws IOException,
                        AutomationException
The target's position.

Remarks

The target is what the observer is looking at, or in other words, what the camera is pointed towards. It uses coordinates that are in the same unit of measure as the scene itself.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTarget in interface ICamera
Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTarget

public void setTarget(IPoint target)
               throws IOException,
                      AutomationException
The target's position.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setTarget in interface ICamera
Parameters:
target - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getUpDirection

public IVector3D getUpDirection()
                         throws IOException,
                                AutomationException
The camera's up-vector.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getUpDirection in interface ICamera
Returns:
A reference to a com.esri.arcgis.geometry.IVector3D
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUpDirection

public void setUpDirection(IVector3D upVector)
                    throws IOException,
                           AutomationException
The camera's up-vector.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setUpDirection in interface ICamera
Parameters:
upVector - A reference to a com.esri.arcgis.geometry.IVector3D (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getViewingDistance

public double getViewingDistance()
                          throws IOException,
                                 AutomationException
The viewing distance between the observer and the target. When changing, the observer moves.

Remarks

The ViewingDistance is in the current scene units as defined by the horizontal coordinate system of the scene's spatial reference.

Setting the ViewingDistance will modify the observer's position along the line of sight relative to the target.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getViewingDistance in interface ICamera
Returns:
The distance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setViewingDistance

public void setViewingDistance(double distance)
                        throws IOException,
                               AutomationException
The viewing distance between the observer and the target. When changing, the observer moves.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setViewingDistance in interface ICamera
Parameters:
distance - The distance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getViewFieldAngle

public double getViewFieldAngle()
                         throws IOException,
                                AutomationException
The view-field angle in degrees.

Remarks

Increasing the ViewFieldAngle creates the appearance of zooming out even though the observer position is unchanged. Wide angles enable the observer to see a large portion of the scene when positioned inside the data area. A wide angle also presents a distorted view, similar to that of a fish-eye lens.

Decreasing the ViewFieldAngle creates the appearance of zooming in even though the observer position is unchanged.

The default ViewFieldAngle is 55 degrees.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getViewFieldAngle in interface ICamera
Returns:
The viewFieldAngle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setViewFieldAngle

public void setViewFieldAngle(double viewFieldAngle)
                       throws IOException,
                              AutomationException
The view-field angle in degrees.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setViewFieldAngle in interface ICamera
Parameters:
viewFieldAngle - The viewFieldAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRollAngle

public double getRollAngle()
                    throws IOException,
                           AutomationException
The roll angle in degrees.

Remarks

The RollAngle represents the angle, in degrees, of the camera about the line of sight between the observer and target. Angles will be reported in the range >=0 and <360. Angles can be given outside of this range but will be 'wrapped' to the equivalent value in the 0 to 360 range. For example -1 is the equivalent of 359 and 361 is the equivalent of 1.

A RollAngle of 0.0, the default, is straight up relative to the Z axis in the scene. Increasing the RollAngle will tilt the camera clockwise about the line of sight.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getRollAngle in interface ICamera
Returns:
The rollAngle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRollAngle

public void setRollAngle(double rollAngle)
                  throws IOException,
                         AutomationException
The roll angle in degrees.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setRollAngle in interface ICamera
Parameters:
rollAngle - The rollAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getProjectionType

public int getProjectionType()
                      throws IOException,
                             AutomationException
The type of projection.

Remarks

The projection can be set to either esriPerspectiveProjection or esriOrthoProjection. A perspective projection provides a sense of three dimensionality. An orthographic projection maintains constant scale throughout and is used to provide a 2D, planimetric, view.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getProjectionType in interface ICamera
Returns:
A com.esri.arcgis.analyst3d.esri3DProjectionType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setProjectionType

public void setProjectionType(int projectionType)
                       throws IOException,
                              AutomationException
The type of projection.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setProjectionType in interface ICamera
Parameters:
projectionType - A com.esri.arcgis.analyst3d.esri3DProjectionType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUsable

public boolean isUsable()
                 throws IOException,
                        AutomationException
Indicates if the camera has valid parameters.

Remarks

Before doing something with a camera it is advisable to call IsUsable first. It's possible the camera has some properties which are undefined or is unable to perform certain requests. This happens when a camera is associated with an empty scene, the target/observer or other parameters has invalid values (not a number, for instance), or when the target and the observer share the same location etc.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
isUsable in interface ICamera
Returns:
The isValid
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getInclination

public double getInclination()
                      throws IOException,
                             AutomationException
The polar inclination of the observer relative to the target. When changed, the observer moves.

Remarks

The inclination represents the altitude angle, in degrees, of the observer relative to the target. When the observer is above the target the inclination is positive, when below it's negative.

The value given for inclination can be greater than -90 or less than 90. Values outside this range will be reset automatically to the closest positive or negative limit (e.g. 95 reset to 89.9999).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getInclination in interface ICamera
Returns:
The inclination
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setInclination

public void setInclination(double inclination)
                    throws IOException,
                           AutomationException
The polar inclination of the observer relative to the target. When changed, the observer moves.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setInclination in interface ICamera
Parameters:
inclination - The inclination (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAzimuth

public double getAzimuth()
                  throws IOException,
                         AutomationException
The polar azimuth of the observer relative to the target. When changed, the observer moves.

Remarks

The azimuth represents the compass direction, in degrees, of the observer relative to the target. At 0 degrees the observer is due north of the target, 90 degrees due east, 180 degrees due south, and 270 degrees due west.

Values exceeding the range 0-360 will be reset to the equivalent value that falls in this range (e.g. 365 gets reset to 5, -5 gets reset to 355).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getAzimuth in interface ICamera
Returns:
The azimuth
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAzimuth

public void setAzimuth(double azimuth)
                throws IOException,
                       AutomationException
The polar azimuth of the observer relative to the target. When changed, the observer moves.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setAzimuth in interface ICamera
Parameters:
azimuth - The azimuth (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rotate

public void rotate(double angle)
            throws IOException,
                   AutomationException
Rotates the observer horizontally around the target by a given angle in degrees.

Remarks

Positive values for degrees will rotate the observer clockwise around the target, negative values counter-clockwise.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
rotate in interface ICamera
Parameters:
angle - The angle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

polarUpdate

public void polarUpdate(double distanceFactor,
                        double dAzimuth,
                        double dInclination,
                        boolean bLimitInclination)
                 throws IOException,
                        AutomationException
Updates the observer's location by given polar increments.

Remarks

The observer will be moved by the values specified in the arguments:

The distanceFactor resets the current ViewingDistance (distance between observer and target) by multiplying it by the given factor.

dAzimuth is added to the current azimuth.

dInclination is added to the current inclination. If the resulting inclination doesn't fall between -89.9 and 89.9 it will be reset so that it does unless bLimitInclination is set to False.

bLimitInclination when set to True ensures the modified inclination doesn't fall outside the -89.9 to 89.9 limit. If set to False and the limit is exceeded the azimuth will be changed 180 degrees and the UpDirection will be flipped.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
polarUpdate in interface ICamera
Parameters:
distanceFactor - The distanceFactor (in)
dAzimuth - The dAzimuth (in)
dInclination - The dInclination (in)
bLimitInclination - The bLimitInclination (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

recalcUp

public void recalcUp()
              throws IOException,
                     AutomationException
Updates the up-vector.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
recalcUp in interface ICamera
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

propertiesChanged

public void propertiesChanged()
                       throws IOException,
                              AutomationException
Sets camera's dirty flag.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
propertiesChanged in interface ICamera
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultsMBB

public void setDefaultsMBB(IEnvelope pExtent)
                    throws IOException,
                           AutomationException
Positions camera so that the entire given extent can be seen.

Remarks

The SetDefaultsMBB method of the camera object in a 3D scene can be used to programmatically zoom to a designated extent of 'minimum bounding box'.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setDefaultsMBB in interface ICamera
Parameters:
pExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultsSphere

public void setDefaultsSphere(IPoint pCenter,
                              double radius)
                       throws IOException,
                              AutomationException
Positions camera so that the entire given spherical extent can be seen.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setDefaultsSphere in interface ICamera
Parameters:
pCenter - A reference to a com.esri.arcgis.geometry.IPoint (in)
radius - The radius (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryViewingPlatformMBB

public void queryViewingPlatformMBB(IEnvelope pExtent,
                                    double[] pNearPlane,
                                    double[] pFarPlane,
                                    double[] pAngle,
                                    double[] pAspect)
                             throws IOException,
                                    AutomationException
Returns the viewing parameters corresponding to the given extent.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryViewingPlatformMBB in interface ICamera
Parameters:
pExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pNearPlane - The pNearPlane (out: use single element array)
pFarPlane - The pFarPlane (out: use single element array)
pAngle - The pAngle (out: use single element array)
pAspect - The pAspect (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryViewingPlatformSphere

public void queryViewingPlatformSphere(IPoint pCenter,
                                       double radius,
                                       double[] pNearPlane,
                                       double[] pFarPlane,
                                       double[] pAngle,
                                       double[] pAspect)
                                throws IOException,
                                       AutomationException
Returns the viewing parameters corresponding to the given spherical extent.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryViewingPlatformSphere in interface ICamera
Parameters:
pCenter - A reference to a com.esri.arcgis.geometry.IPoint (in)
radius - The radius (in)
pNearPlane - The pNearPlane (out: use single element array)
pFarPlane - The pFarPlane (out: use single element array)
pAngle - The pAngle (out: use single element array)
pAspect - The pAspect (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryOrthoViewingPlatform

public void queryOrthoViewingPlatform(IEnvelope pInExtent,
                                      IEnvelope pOutExtent,
                                      double[] pScale)
                               throws IOException,
                                      AutomationException
Returns orthographic projection viewing parameters corresponding to the given extent.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryOrthoViewingPlatform in interface ICamera
Parameters:
pInExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pOutExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pScale - The pScale (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOrthoViewingExtent

public IEnvelope getOrthoViewingExtent()
                                throws IOException,
                                       AutomationException
The extent visible by the camera in orthographic view.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getOrthoViewingExtent in interface ICamera
Returns:
A reference to a com.esri.arcgis.geometry.IEnvelope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

replayFrame

public void replayFrame(ISceneGraph pSceneGraph)
                 throws IOException,
                        AutomationException
Renders a frame.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
replayFrame in interface ICamera
Parameters:
pSceneGraph - A reference to a com.esri.arcgis.analyst3d.ISceneGraph (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canSeeMBB

public boolean canSeeMBB(IEnvelope pExtent)
                  throws IOException,
                         AutomationException
Indicates if the camera can see any portion of the given extent.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
canSeeMBB in interface ICamera
Parameters:
pExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Returns:
The canSee
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canSeeSphere

public boolean canSeeSphere(IPoint pCenter,
                            double radius)
                     throws IOException,
                            AutomationException
Indicates if the camera can see any portion of the given sphere.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
canSeeSphere in interface ICamera
Parameters:
pCenter - A reference to a com.esri.arcgis.geometry.IPoint (in)
radius - The radius (in)
Returns:
The canSee
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryDistanceToMBB

public void queryDistanceToMBB(IEnvelope pExtent,
                               double[] distance)
                        throws IOException,
                               AutomationException
Returns the distance to the given extent.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryDistanceToMBB in interface ICamera
Parameters:
pExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
distance - The distance (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryDistanceToSphere

public void queryDistanceToSphere(IPoint pCenter,
                                  double radius,
                                  double[] distance)
                           throws IOException,
                                  AutomationException
Returns the distance to the given sphere.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryDistanceToSphere in interface ICamera
Parameters:
pCenter - A reference to a com.esri.arcgis.geometry.IPoint (in)
radius - The radius (in)
distance - The distance (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryDistanceToSphereCenter

public void queryDistanceToSphereCenter(IPoint pCenter,
                                        double radius,
                                        double[] distance)
                                 throws IOException,
                                        AutomationException
Returns the distance to the given sphere's center.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryDistanceToSphereCenter in interface ICamera
Parameters:
pCenter - A reference to a com.esri.arcgis.geometry.IPoint (in)
radius - The radius (in)
distance - The distance (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryIdentifyVector

public void queryIdentifyVector(int dx,
                                int dy,
                                IVector3D pIdentifyVect)
                         throws IOException,
                                AutomationException
Returns the vector that corresponds to given screen coordinates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryIdentifyVector in interface ICamera
Parameters:
dx - The dx (in)
dy - The dy (in)
pIdentifyVect - A reference to a com.esri.arcgis.geometry.IVector3D (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getIdentifyVector

public IVector3D getIdentifyVector(IPoint pCursor)
                            throws IOException,
                                   AutomationException
Returns the vector that corresponds to the given screen location.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getIdentifyVector in interface ICamera
Parameters:
pCursor - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.geometry.IVector3D
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getIdentifyRay

public IRay getIdentifyRay(int dx,
                           int dy)
                    throws IOException,
                           AutomationException
Returns the ray that corresponds to given screen coordinates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getIdentifyRay in interface ICamera
Parameters:
dx - The dx (in)
dy - The dy (in)
Returns:
A reference to a com.esri.arcgis.geometry.IRay
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

move

public void move(int direction,
                 double factor)
          throws IOException,
                 AutomationException
Moves the camera in the specified direction. The distance is calculated by applying the given factor to the current viewing distance.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
move in interface ICamera
Parameters:
direction - A com.esri.arcgis.analyst3d.esriCameraMovementType constant (in)
factor - The factor (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

pan

public void pan(IPoint startPoint,
                IPoint endPoint)
         throws IOException,
                AutomationException
Moves both the observer and the target so that the object picked as the starting point on screen assumes the ending-point position.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
pan in interface ICamera
Parameters:
startPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
endPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

levelTargetToObs

public void levelTargetToObs()
                      throws IOException,
                             AutomationException
Levels the target to the observer.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
levelTargetToObs in interface ICamera
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

levelObsToTarget

public void levelObsToTarget()
                      throws IOException,
                             AutomationException
Levels the observer to the target.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
levelObsToTarget in interface ICamera
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

hTurnAround

public void hTurnAround(double dAzimuth)
                 throws IOException,
                        AutomationException
Turns the camera horizontally around observer by the given azimuth angle.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
hTurnAround in interface ICamera
Parameters:
dAzimuth - The dAzimuth (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

zoom

public void zoom(double ratio)
          throws IOException,
                 AutomationException
Zooms in or out by moving the observer according to the required ratio between the new and previous viewing distances.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
zoom in interface ICamera
Parameters:
ratio - The ratio (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

zoomToRect

public void zoomToRect(IEnvelope pExtent)
                throws IOException,
                       AutomationException
Zooms to the given screen extent.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
zoomToRect in interface ICamera
Parameters:
pExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getScale

public double getScale()
                throws IOException,
                       AutomationException
The orthographic projection scale.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getScale in interface ICamera
Returns:
The pScale
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMultiPhaseRendering

public void setMultiPhaseRendering(boolean pbMultiPhase)
                            throws IOException,
                                   AutomationException
The state of multi-phase rendering. When true, the scene depth can be divided into multiple passes to improve rendering quality.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setMultiPhaseRendering in interface ICamera
Parameters:
pbMultiPhase - The pbMultiPhase (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isMultiPhaseRendering

public boolean isMultiPhaseRendering()
                              throws IOException,
                                     AutomationException
The state of multi-phase rendering. When true, the scene depth can be divided into multiple passes to improve rendering quality.

Remarks

MultiPhaseRendering is only implemented in ArcScene. When set to True (the default is False), multiple drawing steps are enabled to avoid Z-buffer imprecisions when the ratio of far/near distance is too large, therefore layers with extreme extents may be seen throughout the scene. The far/near distance here refers to the distance between the observer and the far/near clipping plane in OpenGL terms.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
isMultiPhaseRendering in interface ICamera
Returns:
The pbMultiPhase
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setVerticalExaggeration

public void setVerticalExaggeration(double rhs1)
                             throws IOException,
                                    AutomationException
Adapts the camera to the scene's vertical exaggeration.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setVerticalExaggeration in interface ICamera
Parameters:
rhs1 - The rhs1 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setOrientationMode

public void setOrientationMode(int pMode)
                        throws IOException,
                               AutomationException
The orientation mode.

Remarks

When using this property to switch from global to local navigation mode, no other properties are affected. Yet to effectively switch to local navigation mode, two other properties must first be set:

1. Target Altitude:

In global navigation mode, the target's altitude is fixed to the center of the Earth, having an altitude of approximately -6367.445 km. When setting the orientation mode to local, the target altitude remains set to the center of the Earth. To effectively switch to local orientation mode, set the target altitude to a value slightly offset from the Earth's surface: i.e. 0.001 km (1 meter).

2. Observer (Latitude, Longitude):

In global navigation mode, observer and target coordinates are kept locked in sync, so that when the observer coordinates change, the target coordinates reflect the same values. When setting orientation mode to local, the target coordinates remain set to the same coordinates as the observer, causing our line of sight to be locked in place, preventing us from being able to navigate. To be able to effectively navigate, set the observer coordinates to values that differ from the target. The greater the offset between the observer and target, the greater the flexibility that should found when navigating in local mode: i.e. add 10 degrees to the Observer latitude and longitude values.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setOrientationMode in interface IGlobeCamera
Parameters:
pMode - A com.esri.arcgis.globecore.esriGlobeCameraOrientationMode constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOrientationMode

public int getOrientationMode()
                       throws IOException,
                              AutomationException
The orientation mode.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getOrientationMode in interface IGlobeCamera
Returns:
A com.esri.arcgis.globecore.esriGlobeCameraOrientationMode constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTargetLatLonAlt

public void setTargetLatLonAlt(double latDD,
                               double lonDD,
                               double altKMs)
                        throws IOException,
                               AutomationException
Set the target location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.

Remarks

Setting the target altitude has no effect when orientation mode is set to global as the target location must remain fixed in the center of the globe when in that mode.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setTargetLatLonAlt in interface IGlobeCamera
Parameters:
latDD - The latDD (in)
lonDD - The lonDD (in)
altKMs - The altKMs (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTargetLatLonAlt

public void getTargetLatLonAlt(double[] pLatDD,
                               double[] pLonDD,
                               double[] pAltKMs)
                        throws IOException,
                               AutomationException
Get the target location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTargetLatLonAlt in interface IGlobeCamera
Parameters:
pLatDD - The pLatDD (out: use single element array)
pLonDD - The pLonDD (out: use single element array)
pAltKMs - The pAltKMs (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setObserverLatLonAlt

public void setObserverLatLonAlt(double latDD,
                                 double lonDD,
                                 double altKMs)
                          throws IOException,
                                 AutomationException
Set the observer location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setObserverLatLonAlt in interface IGlobeCamera
Parameters:
latDD - The latDD (in)
lonDD - The lonDD (in)
altKMs - The altKMs (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getObserverLatLonAlt

public void getObserverLatLonAlt(double[] pLatDD,
                                 double[] pLonDD,
                                 double[] pAltKMs)
                          throws IOException,
                                 AutomationException
Set the observer location as a combination of latitude and longitude in decimal degrees plus altitude in kilometers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getObserverLatLonAlt in interface IGlobeCamera
Parameters:
pLatDD - The pLatDD (out: use single element array)
pLonDD - The pLonDD (out: use single element array)
pAltKMs - The pAltKMs (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRollOffset

public void setRollOffset(double pRollAngle)
                   throws IOException,
                          AutomationException
The offset for the roll angle in degrees.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setRollOffset in interface IGlobeCamera
Parameters:
pRollAngle - The pRollAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRollOffset

public double getRollOffset()
                     throws IOException,
                            AutomationException
The offset for the roll angle in degrees.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getRollOffset in interface IGlobeCamera
Returns:
The pRollAngle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFrustumSkewRect

public void getFrustumSkewRect(double[] xmin,
                               double[] xmax,
                               double[] ymin,
                               double[] ymax)
                        throws IOException,
                               AutomationException
Values are between 0 and 1 -- define the skew rectangle.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFrustumSkewRect in interface IGlobeCamera
Parameters:
xmin - The xmin (out: use single element array)
xmax - The xmax (out: use single element array)
ymin - The ymin (out: use single element array)
ymax - The ymax (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFrustumSkewRect

public void setFrustumSkewRect(double xmin,
                               double xmax,
                               double ymin,
                               double ymax)
                        throws IOException,
                               AutomationException
Values are between 0 and 1 -- define the skew rectangle.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setFrustumSkewRect in interface IGlobeCamera
Parameters:
xmin - The xmin (in)
xmax - The xmax (in)
ymin - The ymin (in)
ymax - The ymax (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAccurateViewDirection

public void setAccurateViewDirection(double viewX,
                                     double viewY,
                                     double viewZ)
                              throws IOException,
                                     AutomationException
Set the high precision normalized view direction.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setAccurateViewDirection in interface IGlobeCamera
Parameters:
viewX - The viewX (in)
viewY - The viewY (in)
viewZ - The viewZ (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAccurateViewDirection

public void getAccurateViewDirection(double[] pViewX,
                                     double[] pViewY,
                                     double[] pViewZ)
                              throws IOException,
                                     AutomationException
Get the high precision normalized view direction.

Description

Get the high precision normalized view direction. The x, y and z values returned will create a 3D vector with a unit length of 1.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getAccurateViewDirection in interface IGlobeCamera
Parameters:
pViewX - The pViewX (out: use single element array)
pViewY - The pViewY (out: use single element array)
pViewZ - The pViewZ (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLocalOrientation

public void getLocalOrientation(double[] plocalAzi,
                                double[] pLocalIncl,
                                double[] pLocalRoll)
                         throws IOException,
                                AutomationException
Get the azimuth, inclination and roll angles relative to the current target on surface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getLocalOrientation in interface IGlobeCamera
Parameters:
plocalAzi - The plocalAzi (out: use single element array)
pLocalIncl - The pLocalIncl (out: use single element array)
pLocalRoll - The pLocalRoll (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setNavigationType

public void setNavigationType(int pType)
                       throws IOException,
                              AutomationException
The navigation type.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setNavigationType in interface IGlobeCamera
Parameters:
pType - A com.esri.arcgis.globecore.esriGlobeNavigationType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNavigationType

public int getNavigationType()
                      throws IOException,
                             AutomationException
The navigation type.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNavigationType in interface IGlobeCamera
Returns:
A com.esri.arcgis.globecore.esriGlobeNavigationType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setToZoomToExtents

public void setToZoomToExtents(IEnvelope pExtent,
                               IGlobe pGlobe,
                               ISceneViewer pSceneViewer)
                        throws IOException,
                               AutomationException
Set the Camera to Zoom to an Extent.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setToZoomToExtents in interface IGlobeCamera
Parameters:
pExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pGlobe - A reference to a com.esri.arcgis.globecore.IGlobe (in)
pSceneViewer - A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getScalingDistance

public double getScalingDistance()
                          throws IOException,
                                 AutomationException
The current distance used for scale range comparisons.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getScalingDistance in interface IGlobeViewUtil
Returns:
The pDistanceInMeters
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTargetAtCenter

public void setTargetAtCenter()
                       throws IOException,
                              AutomationException
Sets the camera target at the center of the globe.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setTargetAtCenter in interface IGlobeViewUtil
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geographicToGeocentric

public void geographicToGeocentric(double long_dd,
                                   double lat_dd,
                                   double elev_meters,
                                   double[] pX,
                                   double[] pY,
                                   double[] pZ)
                            throws IOException,
                                   AutomationException
Transform geographical coordinates to normalized geocentric coordinates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
geographicToGeocentric in interface IGlobeViewUtil
Parameters:
long_dd - The long_dd (in)
lat_dd - The lat_dd (in)
elev_meters - The elev_meters (in)
pX - The pX (out: use single element array)
pY - The pY (out: use single element array)
pZ - The pZ (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geocentricToGeographic

public void geocentricToGeographic(double x,
                                   double y,
                                   double z,
                                   double[] pLong_dd,
                                   double[] pLat_dd,
                                   double[] pElev_meters)
                            throws IOException,
                                   AutomationException
Transform normalized geocentric coordinates to geographic coordinates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
geocentricToGeographic in interface IGlobeViewUtil
Parameters:
x - The x (in)
y - The y (in)
z - The z (in)
pLong_dd - The pLong_dd (out: use single element array)
pLat_dd - The pLat_dd (out: use single element array)
pElev_meters - The pElev_meters (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geographicToWindow

public void geographicToWindow(double long_dd,
                               double lat_dd,
                               double elev_meters,
                               int[] pWinX,
                               int[] pWinY)
                        throws IOException,
                               AutomationException
Get the window coordinates corresponding to a geographical location, or -1 if not visible.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
geographicToWindow in interface IGlobeViewUtil
Parameters:
long_dd - The long_dd (in)
lat_dd - The lat_dd (in)
elev_meters - The elev_meters (in)
pWinX - The pWinX (out: use single element array)
pWinY - The pWinY (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geocentricToWindow

public void geocentricToWindow(double x,
                               double y,
                               double z,
                               int[] pWinX,
                               int[] pWinY)
                        throws IOException,
                               AutomationException
Get the window coordinates corresponding to a geocentric location, or -1 if not visible.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
geocentricToWindow in interface IGlobeViewUtil
Parameters:
x - The x (in)
y - The y (in)
z - The z (in)
pWinX - The pWinX (out: use single element array)
pWinY - The pWinY (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

windowToGeographic

public void windowToGeographic(IGlobeDisplay pDisplay,
                               ISceneViewer pViewer,
                               int winX,
                               int winY,
                               boolean bUseZBufferValue,
                               double[] pLon,
                               double[] pLat,
                               double[] pAlt)
                        throws IOException,
                               AutomationException
Get the geographic coordinates in the line of sight defined by the window coordinates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
windowToGeographic in interface IGlobeViewUtil
Parameters:
pDisplay - A reference to a com.esri.arcgis.globecore.IGlobeDisplay (in)
pViewer - A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)
winX - The winX (in)
winY - The winY (in)
bUseZBufferValue - The bUseZBufferValue (in)
pLon - The pLon (out: use single element array)
pLat - The pLat (out: use single element array)
pAlt - The pAlt (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

windowToGeocentric

public void windowToGeocentric(IGlobeDisplay pDisplay,
                               ISceneViewer pViewer,
                               int winX,
                               int winY,
                               boolean bUseZBufferValue,
                               double[] pX,
                               double[] pY,
                               double[] pZ)
                        throws IOException,
                               AutomationException
Get the geocentric coordinates in the line of sight defined by the window coordinates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
windowToGeocentric in interface IGlobeViewUtil
Parameters:
pDisplay - A reference to a com.esri.arcgis.globecore.IGlobeDisplay (in)
pViewer - A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)
winX - The winX (in)
winY - The winY (in)
bUseZBufferValue - The bUseZBufferValue (in)
pX - The pX (out: use single element array)
pY - The pY (out: use single element array)
pZ - The pZ (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getViewingFrustrum

public void getViewingFrustrum(_WKSPointZ[] pNearBottomLeft,
                               _WKSPointZ[] pNearBottomRight,
                               _WKSPointZ[] pNearTopLeft,
                               _WKSPointZ[] pNearTopRight,
                               _WKSPointZ[] pFarBottomLeft,
                               _WKSPointZ[] pFarBottomRight,
                               _WKSPointZ[] pFarTopLeft,
                               _WKSPointZ[] pFarTopRight)
                        throws IOException,
                               AutomationException
Get the viewing frustum as a truncated pyramid, a set of eight points in geocentric coordinates.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getViewingFrustrum in interface IGlobeViewUtil
Parameters:
pNearBottomLeft - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pNearBottomRight - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pNearTopLeft - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pNearTopRight - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pFarBottomLeft - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pFarBottomRight - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pFarTopLeft - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pFarTopRight - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getIsPointVisible

public void getIsPointVisible(double x,
                              double y,
                              double z,
                              boolean[] pOutsideView,
                              boolean[] pTooClose,
                              boolean[] pTooFar)
                       throws IOException,
                              AutomationException
Detect if point with geocentric coordinates is outside the pyramidal view, too close to the viewpoint, or too far from it.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getIsPointVisible in interface IGlobeViewUtil
Parameters:
x - The x (in)
y - The y (in)
z - The z (in)
pOutsideView - The pOutsideView (out: use single element array)
pTooClose - The pTooClose (out: use single element array)
pTooFar - The pTooFar (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLocalOrigin

public void setLocalOrigin(double x,
                           double y,
                           double rhs3)
                    throws IOException,
                           AutomationException
The local origin for high precision OpenGL custom drawing.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setLocalOrigin in interface IGlobeViewUtil
Parameters:
x - The x (in)
y - The y (in)
rhs3 - The rhs3 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryVisibleGeographicExtent

public void queryVisibleGeographicExtent(IEnvelope extent)
                                  throws IOException,
                                         AutomationException
Visible geographic extent of Globe sphere.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
queryVisibleGeographicExtent in interface IGlobeViewUtil
Parameters:
extent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.