ArcObjects Library Reference (GlobeCore)  

IGlobeCamera.GetAccurateViewDirection Method

Get the high precision normalized view direction.

[Visual Basic .NET]
Public Sub GetAccurateViewDirection ( _
    ByRef pViewX As Double, _
    ByRef pViewY As Double, _
    ByRef pViewZ As Double _
)
[C#]
public void GetAccurateViewDirection (
    ref double pViewX,
    ref double pViewY,
    ref double pViewZ
);
[C++]
HRESULT GetAccurateViewDirection(
  double* pViewX,
  double* pViewY,
  double* pViewZ
);
[C++]

Parameters

pViewX [out]   pViewX is a parameter of type double pViewY [out]   pViewY is a parameter of type double pViewZ [out]   pViewZ is a parameter of type double

Product Availability

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

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.

[C#]

The following code shows that the x, y and z values returned will create a 3D vector with a unit length of 1.

..

ESRI.ArcGIS.GlobeCore.IGlobeDisplay globeDisplay = globe.GlobeDisplay;

ESRI.ArcGIS.Analyst3D.ISceneViewer sceneViewer = globeDisplay.ActiveViewer;

ESRI.ArcGIS.Analyst3D.ICamera camera = sceneViewer.Camera;

ESRI.ArcGIS.GlobeCore.IGlobeCamera globeCamera = (ESRI.ArcGIS.GlobeCore.IGlobeCamera)camera;

 

double viewX, viewY, viewZ;

globeCamera.GetAccurateViewDirection(out viewX, out viewY, out viewZ);

 

bool isVectorThreeD;

// Check if the magnitude of the resulting vector = 1

if (Math.Sqrt(Math.Pow(viewX, 2) + Math.Pow(viewY, 2) + Math.Pow(viewZ, 2)) == 1)

{

isVectorThreeD = true;

}

else

{

isVectorThreeD = false;

}

MessageBox.Show (isVectorThreeD.ToString()

See Also

IGlobeCamera Interface