|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IGlobeCamera
Provides access to members that manipulate global parameters of the camera.
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.
Note: IGlobeCamera cannot be used within multithreaded applications.
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 |
---|
void setOrientationMode(int pMode) throws IOException, AutomationException
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.
pMode
- A com.esri.arcgis.globecore.esriGlobeCameraOrientationMode constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getOrientationMode() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setTargetLatLonAlt(double latDD, double lonDD, double altKMs) throws IOException, AutomationException
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.
latDD
- The latDD (in)lonDD
- The lonDD (in)altKMs
- The altKMs (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void getTargetLatLonAlt(double[] pLatDD, double[] pLonDD, double[] pAltKMs) throws IOException, AutomationException
pLatDD
- The pLatDD (out: use single element array)pLonDD
- The pLonDD (out: use single element array)pAltKMs
- The pAltKMs (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setObserverLatLonAlt(double latDD, double lonDD, double altKMs) throws IOException, AutomationException
latDD
- The latDD (in)lonDD
- The lonDD (in)altKMs
- The altKMs (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void getObserverLatLonAlt(double[] pLatDD, double[] pLonDD, double[] pAltKMs) throws IOException, AutomationException
pLatDD
- The pLatDD (out: use single element array)pLonDD
- The pLonDD (out: use single element array)pAltKMs
- The pAltKMs (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setRollOffset(double pRollAngle) throws IOException, AutomationException
pRollAngle
- The pRollAngle (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.double getRollOffset() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void getFrustumSkewRect(double[] xMin, double[] xMax, double[] yMin, double[] yMax) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setFrustumSkewRect(double xMin, double xMax, double yMin, double yMax) throws IOException, AutomationException
xMin
- The xMin (in)xMax
- The xMax (in)yMin
- The yMin (in)yMax
- The yMax (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setAccurateViewDirection(double viewX, double viewY, double viewZ) throws IOException, AutomationException
viewX
- The viewX (in)viewY
- The viewY (in)viewZ
- The viewZ (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void getAccurateViewDirection(double[] pViewX, double[] pViewY, double[] pViewZ) throws IOException, AutomationException
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.
pViewX
- The pViewX (out: use single element array)pViewY
- The pViewY (out: use single element array)pViewZ
- The pViewZ (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void getLocalOrientation(double[] plocalAzi, double[] pLocalIncl, double[] pLocalRoll) throws IOException, AutomationException
plocalAzi
- The plocalAzi (out: use single element array)pLocalIncl
- The pLocalIncl (out: use single element array)pLocalRoll
- The pLocalRoll (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setNavigationType(int pType) throws IOException, AutomationException
pType
- A com.esri.arcgis.globecore.esriGlobeNavigationType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getNavigationType() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setToZoomToExtents(IEnvelope pExtent, IGlobe pGlobe, ISceneViewer pSceneViewer) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |