This document is archived and information here might be outdated.  Recommended version.


IConstructPoint.ConstructParallel Method (ArcObjects .NET 10.4 SDK)
ArcObjects Library Reference (Geometry)  

IConstructPoint.ConstructParallel Method

Constructs a point distance units from start, parallel to the tangent at the point nearest to start on the (extended) segment.

[Visual Basic .NET]
Public Sub ConstructParallel ( _
    ByVal Segment As ISegment, _
    ByVal extension As esriSegmentExtension, _
    ByVal start As IPoint, _
    ByVal distance As Double _
)
[C#]
public void ConstructParallel (
    ISegment Segment,
    esriSegmentExtension extension,
    IPoint start,
    double distance
);
[C++]
HRESULT ConstructParallel(
  ISegment* Segment,
  esriSegmentExtension extension,
  IPoint* start,
  double distance
);
[C++]

Parameters Segment
Segment is a parameter of type ISegment extension
extension is a parameter of type esriSegmentExtension start
start is a parameter of type IPoint distance distance is a parameter of type double

Product Availability

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

Description

ConstructParallel constructs a Point a specified distance from the input point in the direction parallel to the tangent of the nearest point on the extended input segment.

Remarks

 

ConstructPoint ConstructParallel Example

[C#]

//The example shows how to construct a point parallel to the first segment
//of a selected polyline. Use ArcMap and the Object Editor to select the
//polyline.
public void ConstructPointParallelToLine(IMxDocument mxDocument)
{

    IMap map=mxDocument.FocusMap;
    IEnumFeature selectedFeatures=map.FeatureSelection as IEnumFeature;
    selectedFeatures.Reset();
    IFeature currentFeature=selectedFeatures.Next();
    IConstructPoint constructionPoint=new PointClass();
    while (currentFeature != null)
    {
        if (currentFeature.Shape.GeometryType == esriGeometryType.esriGeometryPolyline)
        {
            IGeometryCollection geometryCollection=currentFeature.Shape as IGeometryCollection;
            ISegmentCollection segmentCollection=geometryCollection.get_Geometry(0) as ISegmentCollection;
            ISegment segment=segmentCollection.get_Segment(0);
            IPoint fromPoint=new PointClass();
            segment.QueryFromPoint(fromPoint);
            //add 10 to the x coordinate in order to get a diffrent point for this example
            fromPoint.X=fromPoint.X + 10;

            constructionPoint.ConstructParallel(segment, esriSegmentExtension.esriNoExtension, fromPoint, segment.Length / 2);
            IPoint outPutPoint=constructionPoint as IPoint;
            System.Windows.Forms.MessageBox.Show("Output point : " + outPutPoint.X + " , " + outPutPoint.Y);
        }
        currentFeature=selectedFeatures.Next();
    }
}

[Visual Basic .NET]

    ' The example shows how to construct a point parallel to the first segment
    ' of a selected polyline. Use ArcMap and the Object Editor to select the
    ' polyline.

    Public Sub t_constructParallel(ByVal pApp As ESRI.ArcGIS.Framework.IApplication)
        Dim pID As New ESRI.ArcGIS.esriSystem.UID
        pID="esriEditor.editor"
        Dim pEditor As ESRI.ArcGIS.Editor.IEditor
        pEditor=pApp.FindExtensionByCLSID(pID)

        If pEditor.SelectionCount > 1 Then
            MsgBox("select one polyline")
            Exit Sub
        End If

        Dim pEnumFeat As ESRI.ArcGIS.Geodatabase.IEnumFeature
        Dim pFeature As ESRI.ArcGIS.Geodatabase.IFeature
        Dim i As Long

        pEnumFeat=pEditor.EditSelection

        Dim pSeg As ESRI.ArcGIS.Geometry.ISegment
        Dim pGeoColl As ESRI.ArcGIS.Geometry.IGeometryCollection
        Dim pPoint As ESRI.ArcGIS.Geometry.IPoint
        pPoint=New ESRI.ArcGIS.Geometry.Point
        Dim pCPoint As ESRI.ArcGIS.Geometry.IConstructPoint
        pCPoint=New ESRI.ArcGIS.Geometry.Point
        Dim pThroughPoint As ESRI.ArcGIS.Geometry.IPoint
        pThroughPoint=New ESRI.ArcGIS.Geometry.Point

        pFeature=pEnumFeat.Next

        While Not pFeature Is Nothing
            If pFeature.Shape.GeometryType=ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline Then
                pGeoColl=pFeature.Shape
                Dim pSegColl As ESRI.ArcGIS.Geometry.ISegmentCollection
                pSegColl=pGeoColl.Geometry(0)
                pSeg=pSegColl.Segment(0)
                pSeg.QueryFromPoint(pThroughPoint)
                pThroughPoint.X=pThroughPoint.X + 10

                pCPoint.ConstructParallel(pSeg, ESRI.ArcGIS.Geometry.esriSegmentExtension.esriNoExtension, pThroughPoint, pSeg.Length / 2)
                pPoint=pCPoint
                MsgBox(pPoint.X & "," & pPoint.Y)
            End If
            pFeature=pEnumFeat.Next
        End While
    End Sub

See Also

IConstructPoint Interface