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


ICurve2.PutCoordsEx Method (ArcObjects .NET 10.4 SDK)
ArcObjects Library Reference (Geometry)  

ICurve2.PutCoordsEx Method

Sets this segment's endpoints to 'from' and 'to'.

[Visual Basic .NET]
Public Sub PutCoordsEx ( _
    ByVal from As IPoint, _
    ByVal to As IPoint _
)
[C#]
public void PutCoordsEx (
    IPoint from,
    IPoint to
);
[C++]
HRESULT PutCoordsEx(
  IPoint* from,
  IPoint* to
);
[C++]

Parameters from
from is a parameter of type IPoint to
to is a parameter of type IPoint

Product Availability

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

Description

PutCoordsEx allows both the fromPoint and the toPoint to be set simultaneously. 
A Conformal Transformation based on the original points and the new points
is applied to the curve.

[C#]

//This example demonstrates how to use the PutCoordsEx method
static void PutCoordsEx_Example()
{
    //Create a new CircularArc
    IPoint fromPoint=new PointClass();
    fromPoint.PutCoords(0, 0);

    IPoint centerPoint=new PointClass();
    centerPoint.PutCoords(5, 0);

    IPoint toPoint=new PointClass();
    toPoint.PutCoords(10, 0);

    ICircularArc circularArc=new CircularArcClass();
    circularArc.PutCoords(centerPoint, fromPoint, toPoint, esriArcOrientation.esriArcClockwise);

    ICurve2 curve=circularArc as ICurve2;
    //Create new points
    IPoint newFromPoint=new PointClass();
    newFromPoint.PutCoords(-5, 0);

    IPoint newToPoint=new PointClass();
    newToPoint.PutCoords(15, 10);

    //Use the new points to modify the end points
    //of the CircularArc. The method will perform a conformal
    //transformation on the curves to adjust the end points
    String report="Curves before PutCoordsEx \n";
    report=report + printCircularArcProperties(curve as ICircularArc);
    curve.PutCoordsEx(newFromPoint, newToPoint);
    report=report + "Curves after PutCoordsEx \n";
    report=report + printCircularArcProperties(curve as ICircularArc);

    System.Windows.Forms.MessageBox.Show(report);
}

static String printCircularArcProperties(ICircularArc circularArc)
{
    String report="Radius : " + circularArc.Radius + "\n" +
                    "Chord Height : " + circularArc.ChordHeight + "\n" +
                    "Central Angle (Rad) : " + circularArc.CentralAngle + "\n" +
                    "From Angle (Rad) : " + circularArc.FromAngle + "\n" +
                    "To Angle (Rad) : " + circularArc.ToAngle + "\n" +
                    "Center Point : " + circularArc.CenterPoint.X + " , " + circularArc.CenterPoint.Y;
    return report;
}

[Visual Basic .NET]

    'This example demonstrates how to use the PutCoordsEx method

    Sub PutCoordsEx_Example()
        Dim pCarc As ICircularArc, pCurve As ICurve2
        Dim ptc As IPoint, pfr As IPoint, pto As IPoint
        Dim pNewFr As IPoint, pNewTo As IPoint
        'Create a new CircularArc
        pCarc=New CircularArc
        ptc=New Point
        ptc.PutCoords(5, 0)
        pfr=New Point
        pfr.PutCoords(0, 0)
        pto=New Point
        pto.PutCoords(10, 0)
        pCarc.PutCoords(ptc, pfr, pto, esriArcOrientation.esriArcClockwise)
        pCurve=pCarc 'QI
        'Create new points
        pNewFr=New Point
        pNewFr.PutCoords(-5, 0)
        pNewTo=New Point
        pNewTo.PutCoords(15, 10)
        'Use the new points to modify the end points
        'of the CircularArc. The method will perform a conformal
        'transformation on the curves to adjust the end points
        Debug.Print("*** Curves before PutCoordsEx ***")
        printCArcProp(pCurve)
        pCurve.PutCoordsEx(pNewFr, pNewTo)
        Debug.Print("*** Curves after PutCoordsEx ***")
        printCArcProp(pCurve)
    End Sub

    Sub printCArcProp(ByVal pCarc As ICircularArc)
        Debug.Print("Radius : " & pCarc.Radius)
        Debug.Print("Chord Height : " & pCarc.ChordHeight)
        Debug.Print("Central Angle (Rad) : " & pCarc.CentralAngle)
        Debug.Print("From Angle (Rad) : " & pCarc.FromAngle)
        Debug.Print("To Angle (Rad) : " & pCarc.ToAngle)
        Debug.Print("Center Point : " & pCarc.CenterPoint.X & " , " & pCarc.CenterPoint.Y)
    End Sub

See Also

ICurve2 Interface