com.esri.arcgis.geometry
Interface IRay

All Superinterfaces:
IGeometry, Serializable
All Known Subinterfaces:
IRay2
All Known Implementing Classes:
Ray

public interface IRay
extends IGeometry, Serializable

Provides access to 3D Ray properties and methods. A ray has one endpoint (its origin) and continues infinitely in one direction.

Superseded By

IRay2

Description

A Ray is a one-dimensional object defined by an Origin point and a directional Vector. A Ray extends to infinity from the Origin point in the direction of the Vector.

Remarks

A fixed tolerance value is currently used for the three intersection methods: Intersects(), Intersect(), and QueryFirstIntersection().

Ray Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux


Method Summary
 IEnumIntersection getEnumIntersect(IGeometry targetGeometry)
          Not implemented at this release.
 IPoint getOrigin()
          The origin point of the ray.
 IPoint getPointAtDistance(double distance)
          Constructs a point at a distance along the ray.
 IVector3D getVector()
          The direction vector of the ray.
 void intersect(IGeometry targetGeometry, IPointCollection intersectionPoints)
          Returns a point collection containing all points of intersection, in order along the ray.
 boolean intersects(IGeometry targetGeometry)
          Indicates if the ray intersects the target geometry.
 void queryFirstIntersection(IGeometry targetGeometry, IPoint intersectionPoint)
          Returns the first point of intersection between the ray and the target geometry.
 void queryOrigin(IPoint vectorOrigin)
          Sets a point equal to the ray's origin.
 void queryPointAtDistance(double distance, IPoint point)
          Queries a point at a distance along the ray.
 void queryVector(IVector3D directionVector)
          Sets a vector equal to a unit vector with the same direction as the ray.
 void setOrigin(IPoint vectorOrigin)
          The origin point of the ray.
 void setVector(IVector3D directionVector)
          The direction vector of the ray.
 
Methods inherited from interface com.esri.arcgis.geometry.IGeometry
geoNormalize, geoNormalizeFromLongitude, getDimension, getEnvelope, getGeometryType, getSpatialReference, isEmpty, project, queryEnvelope, setEmpty, setSpatialReferenceByRef, snapToSpatialReference
 

Method Detail

queryOrigin

void queryOrigin(IPoint vectorOrigin)
                 throws IOException,
                        AutomationException
Sets a point equal to the ray's origin.

Description

Returns the Origin of the Ray into the input Point.

Remarks

Note: The output geometry must be co-created prior to the query. The output geometry is not co-created by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.

Ray QueryOrigin Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
vectorOrigin - 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.

getOrigin

IPoint getOrigin()
                 throws IOException,
                        AutomationException
The origin point of the ray.

Description

Returns and sets the Origin of the Ray. The Origin is the starting Point from which the Ray infinitely extends in the direction of its vector.

Remarks

Ray Origin Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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.

setOrigin

void setOrigin(IPoint vectorOrigin)
               throws IOException,
                      AutomationException
The origin point of the ray.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
vectorOrigin - 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.

queryVector

void queryVector(IVector3D directionVector)
                 throws IOException,
                        AutomationException
Sets a vector equal to a unit vector with the same direction as the ray.

Description

Returns the Vector3D of the Ray. The Vector3D determines the direction the Ray extends from its Origin. The Vector of a Ray is always Normalized to a unit vector.

Remarks

Ray QueryVector Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
directionVector - 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.

getVector

IVector3D getVector()
                    throws IOException,
                           AutomationException
The direction vector of the ray.

Description

Returns and sets the Vector3D of the Ray. The Vector3D determines the direction the Ray extends from its Origin. The Vector of a Ray is always Normalized to a unit vector.

Remarks

Ray Vector Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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.

setVector

void setVector(IVector3D directionVector)
               throws IOException,
                      AutomationException
The direction vector of the ray.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
directionVector - 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.

queryPointAtDistance

void queryPointAtDistance(double distance,
                          IPoint point)
                          throws IOException,
                                 AutomationException
Queries a point at a distance along the ray.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
distance - The distance (in)
point - 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.

getPointAtDistance

IPoint getPointAtDistance(double distance)
                          throws IOException,
                                 AutomationException
Constructs a point at a distance along the ray.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
distance - The distance (in)
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.

intersects

boolean intersects(IGeometry targetGeometry)
                   throws IOException,
                          AutomationException
Indicates if the ray intersects the target geometry.

Description

Implemented for Points, Multipoints, Polylines, Polygons, Envelopes, and Multipatches.

Remarks

This method is intended to be called against top-level geometries only (Point, Multipoint, Polyline, Polygon, Envelope, MultiPatch). To call this method against a Segment/Path or Ring, first add the part to a Polyline or Polygon container, respectively, and then call this method against the container.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

queryFirstIntersection

void queryFirstIntersection(IGeometry targetGeometry,
                            IPoint intersectionPoint)
                            throws IOException,
                                   AutomationException
Returns the first point of intersection between the ray and the target geometry. The point is set empty if there is no intersection.

Description

Implemented for Points, Multipoints, Polylines, Polygons, Envelopes, and Multipatches.

Remarks

This method is intended to be called against top-level geometries only (Point, Multipoint, Polyline, Polygon, Envelope, MultiPatch). To call this method against a Segment/Path or Ring, first add the part to a Polyline or Polygon container, respectively, and then call this method against the container.

If a Ray intersects an Envelope and is located within the bounds of the Envelope, the result of QueryFirstIntersection will be the point closest to the Ray origin along the Ray, located on the exterior of the Envelope at which an intersection takes place.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
targetGeometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
intersectionPoint - 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.

intersect

void intersect(IGeometry targetGeometry,
               IPointCollection intersectionPoints)
               throws IOException,
                      AutomationException
Returns a point collection containing all points of intersection, in order along the ray.

Description

Implemented for Points, Multipoints, Polylines, Polygons, Envelopes, and Multipatches.

Remarks

This method is intended to be called against top-level geometries only (Point, Multipoint, Polyline, Polygon, Envelope, MultiPatch). To call this method against a Segment/Path or Ring, first add the part to a Polyline or Polygon container, respectively, and then call this method against the container.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
targetGeometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
intersectionPoints - A reference to a com.esri.arcgis.geometry.IPointCollection (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEnumIntersect

IEnumIntersection getEnumIntersect(IGeometry targetGeometry)
                                   throws IOException,
                                          AutomationException
Not implemented at this release.

Remarks

This method is currently not implemented.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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