Provides access to members that construct a path using other geometries and measures.
Members
| Name | Description | |
|---|---|---|
![]() |
ConstructRigidStretch | Constructs a scaled, rotated version of srcPath. The point at stretchStartIndex will end up at stretchEnd. The points at startAnchor and endAnchor will remain unchanged. Others will be scaled and rotate proportionately. |
IConstructPath.ConstructRigidStretch Method
Constructs a scaled, rotated version of srcPath. The point at stretchStartIndex will end up at stretchEnd. The points at startAnchor and endAnchor will remain unchanged. Others will be scaled and rotate proportionately.
Public Sub ConstructRigidStretch ( _
    ByVal srcPath As IPath, _
    ByVal stretchStartIndex As Integer, _
    ByVal startAnchor As Integer, _
    ByVal endAnchor As Integer, _
    ByVal stretchEnd As IPoint _
)
public void ConstructRigidStretch (
    IPath srcPath,
    int stretchStartIndex,
    int startAnchor,
    int endAnchor,
    IPoint stretchEnd
);
Description
For an existing Path, the ConstructRigidStretch method can be used to rotate and scale the shape of a Path, or just a section of the Path, to a certain point. This method is ideal for use in interactive rubber-sheeting operations. ArcMap, for example, makes use of this method in the �Stretch geometry proportionally when moving a vertex� option.
Remarks
Parameters description:
srcPath: Input IPath object. The path to be stretched.stretchStartIndex: Input Long that represents the index of the origin point on the path to be stretched.startAnchor: Input Long that represents the start anchor. Typically 0 to represent the first point on the path.endAnchor: Input Long that represents the end anchor. Typically pointcount-1 to represent the last point on the path.stretchEnd: Input IPoint object. The destination point where the strecthStartIndex point will be moved.
![]()
public void ConstructRigidStretch_Example()
{
   //Create the source path
   IPath sourcePath = new PathClass();
   IPointCollection pointCollection = sourcePath as IPointCollection;
   IPoint[] points = new IPoint[5];
   for (int i = 0; i < 5; i++)
   {
       points[i] = new PointClass();
   }
   points[0].PutCoords(0, 0);
   points[1].PutCoords(10, 5);
   points[2].PutCoords(20, 20);
   points[3].PutCoords(30, 35);
   points[4].PutCoords(40, 40);
   //helper class to solve C-Style Array usage in COM classes IGeometryBridge geometryBride = new GeometryEnvironmentClass(); geometryBride.AddPoints(pointCollection as IPointCollection4, ref points);   //Strecth the whole path by specifying 0 and the last point index
   //as the start and end anchors
   //The stretch start index is 1, which means that the path will be
   //stretched by moving the second point of the path to the stretched point location
   int originOfStretch = 1;
   int startAnchor = 0;
   int endAnchor = pointCollection.PointCount - 1;
   //The stretchEnd point is the destination point where the point corresponding to
   //originOfStretch index will end up
   IPoint stretchEnd = new PointClass();
   stretchEnd.PutCoords(10, 30);
   //Create a new stretched path
   IConstructPath constructionPath = new PathClass();
   constructionPath.ConstructRigidStretch(sourcePath, originOfStretch, startAnchor, endAnchor, stretchEnd);
}
'This example demonstrates how to use the ConstructRigidStretch method
   Sub ConstructRigidStretch_Example()
       Dim pSrcPath As IPath, pPointColl As IPointCollection
       Dim pPoints(4) As IPoint, i As Long
       Dim pConstPath As IConstructPath, lOriginOfStretch As Long
       Dim lStartAnchor As Long, lEndAnchor As Long
       Dim pStretchEnd As IPoint
       'Create the source path
       pSrcPath = New Path
       pPointColl = pSrcPath
       For i = 0 To 4
           pPoints(i) = New Point
       Next
       pPoints(0).PutCoords(0, 0)
       pPoints(1).PutCoords(10, 5)
       pPoints(2).PutCoords(20, 20)
       pPoints(3).PutCoords(30, 35)
       pPoints(4).PutCoords(40, 40)
       pPointColl.AddPoints(5, pPoints(0))
       'Create a new stretched path
       pConstPath = New Path
       'Strecth the whole path by specifying 0 and the last point index
       'as the start and end anchors
       'The stretch start index is 1, which means that the path will be
       'stretched by moving the second point of the path to the stretched point location
       lOriginOfStretch = 1 'Origin of the stretch
       lStartAnchor = 0
       lEndAnchor = pPointColl.PointCount - 1
       pStretchEnd = New Point
       'The pStretchEnd point is the destination point where the point corresponding to
       'lOriginOfStrectch index will end up
       pStretchEnd.PutCoords(10, 30)
       pConstPath.ConstructRigidStretch(pSrcPath, lOriginOfStretch, lStartAnchor, lEndAnchor, pStretchEnd)
   End Sub
Classes that implement IConstructPath
| Classes | Description |
|---|---|
| Path | A sequence of connected segments. |
| Ring | An area bounded by one, closed sequence of connected segments; optionally has measure, height and ID attributes at each vertex. |
