## com.esri.arcgis.geometry Interface IVector3D

All Superinterfaces:
IVector, Serializable
All Known Implementing Classes:
Vector3D

`public interface IVector3Dextends IVector, Serializable`

#### Description

A 3 Dimensional vector with an X Component, Y Component, and Z Component that correspond to the X-Axis, Y-Axis, and Z-Axis respectively. The 3 Dimensional vector can also be defined in terms of spherical coordinates as an angle of rotation (Azimuth) from the YZ-Plane, angle of displacement (Inclination) from the XY-Plane, and a length (Magnitude). This vector can be manipulated by any of the general Vector operations as well as operations specific to the third dimension.

#### Product Availability

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

Method Summary
` void` ```constructCrossProduct(IVector vector1, IVector vector2)```
Set this vector equal to the cross product of the two input vectors.
` void` ```constructDifference(IPoint point1, IPoint point2)```
Set the vector by taking the difference of point1 and point2 (so the vector would go from point2 to point1).
` IVector` `crossProduct(IVector otherVector)`
Returns the cross product of this vector and another vector.
` double` `getAzimuth()`
The vector's azimuth angle in radians.
` double` `getInclination()`
` double` `getXComponent()`
The vector's X component.
` double` `getYComponent()`
The vector's Y component.
` double` `getZComponent()`
The vector's Z component.
` void` ```move(double dx, double dy, double dz)```
Move the vector by adding a shift value to each component.
` void` ```polarMove(double dAzimuth, double dInclination, double dRadius)```
Modify the vector by adding to its polar components.
` void` ```polarQuery(double[] azimuth, double[] inclination, double[] radiusLength)```
Get the vector's polar components.
` void` ```polarSet(double azimuth, double inclination, double radiusLength)```
Set the vector using polar components.
` void` ```queryComponents(double[] dx, double[] dy, double[] dz)```
Get the values of the vector's components.
` void` ```rotate(double angle, IVector3D axis)```
Rotate the vector around an axis defined by another vector.
` void` `setAzimuth(double azimuth)`
The vector's azimuth angle in radians.
` void` ```setComponents(double dx, double dy, double dz)```
Set the values of the vector's components.
` void` `setInclination(double inclination)`
` void` `setXComponent(double dx)`
The vector's X component.
` void` `setYComponent(double dy)`
The vector's Y component.
` void` `setZComponent(double dz)`
The vector's Z component.

Methods inherited from interface com.esri.arcgis.geometry.IVector
`addVector, constructAddVector, constructSubtractVector, dotProduct, getComponentByIndex, getDimension, getMagnitude, isEmpty, normalize, scale, setComponentByIndex, setEmpty, setMagnitude, subtractVector`

Method Detail

### getXComponent

```double getXComponent()
throws IOException,
AutomationException```
The vector's X component.

#### Description

Returns and sets the X Component of the 3 Dimensional vector. The X Component corresponds to the displacement from the origin along the X-Axis.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### setXComponent

```void setXComponent(double dx)
throws IOException,
AutomationException```
The vector's X component.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### getYComponent

```double getYComponent()
throws IOException,
AutomationException```
The vector's Y component.

#### Description

Returns and sets the Y Component of the 3 Dimensional vector. The Y Component corresponds to the displacement from the origin along the Y-Axis.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### setYComponent

```void setYComponent(double dy)
throws IOException,
AutomationException```
The vector's Y component.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### getZComponent

```double getZComponent()
throws IOException,
AutomationException```
The vector's Z component.

#### Description

Returns and sets the Z Component of the 3 Dimensional vector. The Z Component corresponds to the displacement from the origin along the Z-Axis.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### setZComponent

```void setZComponent(double dz)
throws IOException,
AutomationException```
The vector's Z component.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### getInclination

```double getInclination()
throws IOException,
AutomationException```

#### Description

Returns and sets the Inclination of the 3 Dimensional vector. The Inclination is the angle between the XY-Plane and the vector measured in the Z-direction. The Inclination is measured in radians and has a value between -Pi/2 and Pi/2.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### setInclination

```void setInclination(double inclination)
throws IOException,
AutomationException```

#### Remarks

Note: That property cannot be set unless the vector as three well defined components (X, Y, Z).

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### getAzimuth

```double getAzimuth()
throws IOException,
AutomationException```
The vector's azimuth angle in radians.

#### Description

Returns and sets the Azimuth of the 3 Dimensional vector. The Azimuth is the angle between the YZ-Plane and the vector measured in the X-direction. The Azimuth is measured in radians in a clockwise direction and has a value between 0 and 2*Pi.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### setAzimuth

```void setAzimuth(double azimuth)
throws IOException,
AutomationException```
The vector's azimuth angle in radians.

#### Remarks

Note: That property cannot be set unless the vector as three well defined components (X, Y, Z).

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### move

```void move(double dx,
double dy,
double dz)
throws IOException,
AutomationException```
Move the vector by adding a shift value to each component.

#### Description

Moves the Vector3D by adding a given input factor to each of the X, Y, and Z Components. The result is the same as adding another Vector3D defined by the inputs to the base Vector3D.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### queryComponents

```void queryComponents(double[] dx,
double[] dy,
double[] dz)
throws IOException,
AutomationException```
Get the values of the vector's components.

#### Description

Returns the X Component, Y Component, and X Component of the 3 Dimensional vector.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

Parameters:
`dx` - The dx (out: use single element array)
`dy` - The dy (out: use single element array)
`dz` - The dz (out: use single element array)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### setComponents

```void setComponents(double dx,
double dy,
double dz)
throws IOException,
AutomationException```
Set the values of the vector's components.

#### Description

Sets the X Component, Y Component, and Z Component of the 3 Dimensional vector.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### constructDifference

```void constructDifference(IPoint point1,
IPoint point2)
throws IOException,
AutomationException```
Set the vector by taking the difference of point1 and point2 (so the vector would go from point2 to point1).

#### Description

Constructs a Vector3D defined by the difference between the first point and the second point. The first point and the Origin define a Vector3D, and the Origin and the second point define a second Vector3D. Thus, the constructed difference Vector3D is the Constructed Subtract Vector between the first vector and the second vector.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

Parameters:
`point1` - A reference to a com.esri.arcgis.geometry.IPoint (in)
`point2` - 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.

### rotate

```void rotate(double angle,
IVector3D axis)
throws IOException,
AutomationException```
Rotate the vector around an axis defined by another vector. The angle is in radians.

#### Description

Rotates the base Vector3D a given input angle measured in radians around the specified axis defined by the input Vector3D. To rotate a vector in a given plane defined by two vectors, use the CrossProduct of those vectors as the axis of rotation.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

Parameters:
`angle` - The angle (in)
`axis` - 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.

### polarSet

```void polarSet(double azimuth,
double inclination,
throws IOException,
AutomationException```
Set the vector using polar components. Angles are in radians.

#### Description

Sets the X Component, Y Component, and Z Component values of the 3 Dimensional vector that correspond to the input Azimuth, Inclination, and Radius Length (Magnitude) values. The Azimuth and Inclination are measured in radians.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### polarQuery

```void polarQuery(double[] azimuth,
double[] inclination,
throws IOException,
AutomationException```
Get the vector's polar components. Angles are in radians.

#### Description

Returns the Azimuth, Inclination, and Radius Length (Magnitude) of the 3 Dimensional vector.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

Parameters:
`azimuth` - The azimuth (out: use single element array)
`inclination` - The inclination (out: use single element array)
`radiusLength` - The radiusLength (out: use single element array)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### polarMove

```void polarMove(double dAzimuth,
double dInclination,
throws IOException,
AutomationException```
Modify the vector by adding to its polar components. Angles are in radians.

#### Description

Moves the Vector3D in Polar coordinates by adding a given input factor to each of the Azimuth, Inclination, and Radius Components. This can be thought of as applying a Polar rotation and modification to the base Vector.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

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

### crossProduct

```IVector crossProduct(IVector otherVector)
throws IOException,
AutomationException```
Returns the cross product of this vector and another vector.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

Parameters:
`otherVector` - A reference to a com.esri.arcgis.geometry.IVector (in)
Returns:
A reference to a com.esri.arcgis.geometry.IVector
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### constructCrossProduct

```void constructCrossProduct(IVector vector1,
IVector vector2)
throws IOException,
AutomationException```
Set this vector equal to the cross product of the two input vectors.

#### Product Availability

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

#### Supported Platforms

Windows, Solaris, Linux

Parameters:
`vector1` - A reference to a com.esri.arcgis.geometry.IVector (in)
`vector2` - A reference to a com.esri.arcgis.geometry.IVector (in)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.