com.esri.arcgis.globecore
Interface IGlobeCamera

All Superinterfaces:
Serializable
All Known Implementing Classes:
GlobeCamera

public interface IGlobeCamera
extends Serializable

Provides access to members that manipulate global parameters of the camera.

Description

IGlobeCamera is used primarily to manipulate the globe camera or the perspective of a 3D globe display. It's implemented by the Camera associated with the active viewer in the globe display. Using this interface you can get/set the following properties: OrientationMode - the navigation mode, surface or global. RollOffset offsets the roll angle. By default, RollOffset = 0.

IGlobeCamera also has the following methods: GetTargetLatLonAlt and SetTargetLatLonAlt - target location where latitude and longitude are in decimal degrees and altitude is in kilometers. GetObserverLatLonAlt and SetObserverLatLonAlt -observer location where latitude and longitude are in decimal degrees and altitude is in kilometers. GetLocalOrientation - azimuth, inclination and roll angles relative to the current target on surface, when in surface navigation. GetAccurateViewDirection and SetAccurateViewDirection - high precision normalized view direction. While navigating, when the target is very near to the observer, this method helps in removing the imprecisions in the viewing direction vector, which cause jerkiness, by setting a unit vector in the viewing direction. GetFrustrumSkewRect and SetFrustrumSkewRect - can be used to display/export portions of the current globe view. By default, the values xmin (left) = 0, xmax (right) = 1, ymin (bottom) = 0, ymax (top) = 1, which represent the whole display or rectangular viewing frustum. For example, the viewing frustum parameters can be changed to only display the bottom left half by setting xmin = 0, xmax = 0.5, ymin = 0, and ymax = 0.5.

Remarks

Note: IGlobeCamera cannot be used within multithreaded applications.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux


Method Summary
 void getAccurateViewDirection(double[] pViewX, double[] pViewY, double[] pViewZ)
          Get the high precision normalized view direction.
 void getFrustumSkewRect(double[] xmin, double[] xmax, double[] ymin, double[] ymax)
          Values are between 0 and 1 -- define the skew rectangle.
 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.
 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.
 double getRollOffset()
          The offset for the roll angle in degrees.
 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.
 void setAccurateViewDirection(double viewX, double viewY, double viewZ)
          Set the high precision normalized view direction.
 void setFrustumSkewRect(double xmin, double xmax, double ymin, double ymax)
          Values are between 0 and 1 -- define the skew rectangle.
 void setNavigationType(int pType)
          The navigation type.
 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 setRollOffset(double pRollAngle)
          The offset for the roll angle in degrees.
 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.
 

Method Detail

setOrientationMode

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

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setTargetLatLonAlt

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

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

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

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

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

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

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

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

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

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

getRollOffset

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

Returns:
The pRollAngle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFrustumSkewRect

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

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

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

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

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

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

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

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

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

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

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

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setToZoomToExtents

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

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.