![]()  | 
                    
                         This document is archived and information here might be outdated. Recommended version.  | 
                
A sequence of connected segments.
Use the ISupportErrorInfo method InterfaceSupportsErrorInfo to determine if the object supports extended error information. If the object supports extended error info, VC++ developers should use the OLE/COM IErrorInfo interface to access the ErrorInfo object. Visual Basic developers should use the global error object Err to retrieve this extended error information.
| Interfaces | Description | 
|---|---|
| IClone (esriSystem) | Provides access to members that control cloning of objects. | 
| IConstructPath | Provides access to members that construct a path using other geometries and measures. | 
| ICurve | Provides access to properties and methods of all 1 dimensional curves (polylines, segments, boundaries of polygons, etc.). | 
| IGeometry | Provides access to members that describe properties and behavior of all geometric objects. | 
| IPath | Provides access to members that identify a path and define its behavior. | 
| IPointCollection | Provides access to members that manipulate the points of a Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip, or MultiPatch. | 
| IPointCollection4 | Provides access to members that manipulate the points of a Multipoint, Path, Ring, Polyline, Polygon, TriangleFan, TriangleStrip, or MultiPatch. | 
| ISegmentCollection | Provides access to members that manipulate the segments of a path, ring, polyline, or polygon. | 
| ISupportErrorInfo (esriSystem) | |
| ITransform2D | Provides access to methods for transforming geometries using either specific parameters or arbitrary transformation objects (affine transformations, geographic transformations, etc.). | 
| ITransform3D | Provides access to methods for transforming 3D geometries using either specific parameters or arbitrary transformation objects. | 
| IXMLSerialize (esriSystem) | Provides access to members that XML serialize and deserialize an object to/from XML. | 

private static object _missing = Type.Missing;
public static IGeometry GetPathGeometry()
{
               const double PathVertexCount = 3;
               IPointCollection pointCollection = new PathClass();
for (int i = 0; i < PathVertexCount; i++)
{
pointCollection.AddPoint(GetPoint(), ref _missing, ref _missing);
}
return pointCollection as IGeometry;
}
private static IPoint GetPoint()
{
const double Min = -10;
const double Max = 10;
Random random = new Random();
double x = Min + (Max - Min) * random.NextDouble();
double y = Min + (Max - Min) * random.NextDouble();
double z = Min + (Max - Min) * random.NextDouble();
return ConstructPoint3D(x, y, z);
}
private static IPoint ConstructPoint3D(double x, double y, double z)
{
IPoint point = ConstructPoint2D(x, y);
            point.Z = z;
            return point;
        }
private static IPoint ConstructPoint2D(double x, double y)
{
IPoint point = new PointClass();
            point.PutCoords(x, y);
 
return point;
}