Provides access to a set of generic methods that can be used in all languages supported.
Description
The IGeometryBridge methods can be used with any supported development languages: Java, C#, VB.Net, VB 6.0, C++, etc... The methods on the regular interfaces (IGeometryCollection, ISegmentCollection, IPointCollection, etc) are using C style arrays, which are not supported by some languages; the IGeometryBridge interface is there to solve that problem allowing to pass safe arrays instead.
Members
| Name | Description | |
|---|---|---|
![]() |
AddGeometries | Adds references to the specified geometries. |
![]() |
AddPoints | Adds copies of the input points as vertices to this Path, Ring, Polyline, or Polygon; or references to the input points to this Multipoint, Triangles, TriangleFan, or TriangleStrip. |
![]() |
AddSegments | Adds references to segments. |
![]() |
AddWKSPointZs | Adds vertices/points to this Path, Ring, Polyline, Polygon, Multipoint, Triangles, TriangleFan, TriangleStrip, or MultiPatch. |
![]() |
ConstructBuffers | Constructs a set of buffers at various distances. More efficient than calling Buffer repeatedly on the same geometry. |
![]() |
Densify | Densify segment into the specified number of smaller segments. |
![]() |
GetPoints | Populates an array with references to points in the Multipoint. The QueryPoints method on IPointCollection makes copies of the points. |
![]() |
InsertGeometries | Inserts at the specified index references to some number of geometries in the input array. |
![]() |
InsertPoints | Inserts copies of the input points as vertices into a Path, Ring, Polyline, or Polygon; or references to the input points into a Multipoint, Triangles, TriangleFan, or TriangleStrip. |
![]() |
InsertSegments | Inserts references to the input segments. |
![]() |
InsertWKSPointZs | Inserts new vertices/points into this Path, Ring, Polyline, Polygon, Multipoint, Triangles, TriangleFan, TriangleStrip, or MultiPatch. |
![]() |
QueryBeginningRings | Populates an array with references to all beginning rings of the specified types. |
![]() |
QueryFollowingRings | Populates an array with references to following rings that are in the ring group that starts with the specified beginning ring. |
![]() |
QueryGeometries | Populates the array with references to a sub-sequence of geometries. |
![]() |
QueryPoints | Copies some points to an existing array of points. |
![]() |
QuerySegments | Returns references to some of the input segments. |
![]() |
QueryWKSPointZs | Copies vertices/points coordinates to the array of point structures. |
![]() |
ReplacePoints | Replaces vertices/points within a PointCollection. |
![]() |
ReplaceSegments | Removes and inserts from segments. |
![]() |
SetGeometries | Replaces all geometries in the collection with the specified number of references to those in the input array. |
![]() |
SetPoints | Replaces all existing vertices of this Path, Ring, Polyline, or Polygon with copies of the input points; or all existing points of this Multipoint, Triangles, TriangleFan, or TriangleStrip with references to the input points. |
![]() |
SetSegments | Replaces all segments with references to the input segments. |
![]() |
SetWKSPointZs | Replaces all vertices/points of this Path, Ring, Polyline, Polygon, Multipoint, Triangles, TriangleFan, TriangleStrip, or MultiPatch with new ones. |
IGeometryBridge.AddGeometries Method
Adds references to the specified geometries.
Public Sub AddGeometries ( _
    ByVal pGeometryCollection As IGeometryCollection, _
    ByRef newGeometries As IGeometry[] _
)
public void AddGeometries (
    IGeometryCollection pGeometryCollection,
    ref IGeometry[] newGeometries
);
Description
All development languages compatible version of IGeometryCollection::AddGeometries .
public void AddGeometries()
   {
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IGeometry[] geometryArray = new IGeometry[2];
       geometryArray[0] = point1 as IGeometry;
       geometryArray[1] = point2 as IGeometry;
       //add geometries
       IGeometryCollection geometryCollection = new MultipointClass();
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddGeometries(geometryCollection, ref geometryArray);
   }
IGeometryBridge.AddPoints Method
Adds copies of the input points as vertices to this Path, Ring, Polyline, or Polygon; or references to the input points to this Multipoint, Triangles, TriangleFan, or TriangleStrip.
Public Sub AddPoints ( _
    ByVal pPointCollection As IPointCollection4, _
    ByRef newPoints As IPoint[] _
)
public void AddPoints (
    IPointCollection4 pPointCollection,
    ref IPoint[] newPoints
);
Description
All development languages compatible version of IPointCollection::AddPoints .
public void AddPoints()
   {
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IPoint[] pointArray = new IPoint[2];
       pointArray[0] = point1;
       pointArray[1] = point2;
       IPointCollection4 pointCollection = new PolylineClass();
       //add points to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddPoints(pointCollection, ref pointArray);
       System.Windows.Forms.MessageBox.Show(pointCollection.PointCount + " points added to PointCollection");
   }
IGeometryBridge.AddSegments Method
Adds references to segments.
Public Sub AddSegments ( _
    ByVal pSegmentCollection As ISegmentCollection, _
    ByRef newSegments As ISegment[] _
)
public void AddSegments (
    ISegmentCollection pSegmentCollection,
    ref ISegment[] newSegments
);
Description
All development languages compatible version of ISegmentCollection::AddSegments .
IGeometryBridge.AddWKSPointZs Method
Adds vertices/points to this Path, Ring, Polyline, Polygon, Multipoint, Triangles, TriangleFan, TriangleStrip, or MultiPatch.
Public Sub AddWKSPointZs ( _
    ByVal pPointCollection As IPointCollection4, _
    ByRef pointStructures As WKSPointZ[] _
)
public void AddWKSPointZs (
    IPointCollection4 pPointCollection,
    ref WKSPointZ[] pointStructures
);
Description
All development languages compatible version of IPointCollection4::AddWKSPointsZs .
public void AddWKSPointZs()
   {
       int length = 10;
       WKSPointZ[] pointArray = new WKSPointZ[length];
       for (int i = 0; i < length; i++)
       {
           pointArray[i] = new WKSPointZ();
           pointArray[i].X = i * 10;
           pointArray[i].Y = i * 10;
           pointArray[i].Z = i * 10;
       }
       IPointCollection4 pointCollection = new MultipointClass();
       // Make pointcollection ZAware
       IZAware zAware = (IZAware)pointCollection;
       zAware.ZAware = true;
       //adds WKSpointZs to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddWKSPointZs(pointCollection, ref pointArray);
       System.Windows.Forms.MessageBox.Show(pointCollection.PointCount + " Points added");
   }
IGeometryBridge.ConstructBuffers Method
Constructs a set of buffers at various distances. More efficient than calling Buffer repeatedly on the same geometry.
Public Function ConstructBuffers ( _
    ByVal pTopologicalOperator As ITopologicalOperator2, _
    ByRef distances As Double[]& _
) As IEnumGeometry
public IEnumGeometry ConstructBuffers (
    ITopologicalOperator2 pTopologicalOperator,
    ref Double[]& distances
);
Description
All development languages compatible version of ITopologicalOperator2::ConstructBuffers .
IGeometryBridge.Densify Method
Densify segment into the specified number of smaller segments.
Public Sub Densify ( _
    ByVal pSegment As ISegment, _
    ByVal maxDeviation As Double, _
    ByRef pcOutSegments As Integer, _
    ByRef segments As ILine[] _
)
public void Densify (
    ISegment pSegment,
    double maxDeviation,
    ref int pcOutSegments,
    ref ILine[] segments
);
Description
All development languages compatible version of ISegment::Densify .
//This method demonstrates how to use the ISegment.Densify method
   private void Densify()
   {
       //Create a new closed Circular Arc segment
       IPoint center = new PointClass();
       center.PutCoords(0, 0);
       IPoint fromToPoint = new PointClass();
       fromToPoint.PutCoords(10, 10);
       ICircularArc circularArc = new CircularArcClass();
       circularArc.PutCoords(center, fromToPoint, fromToPoint, esriArcOrientation.esriArcClockwise);
       ISegment segment = circularArc as ISegment;
       //Call densify
       //maxDeviation: 0.1, tells the method that the segment must not further
       //                   a part from that distance from the curve
       //outSegments: output parameter returning the the number of segments created
       //outSegmentsArray: array will contain the output segments.
       //The array size is the max number of parts
       ILine[] outSegmentsArray = new ILine[7];
       double maxDeviation = 0.1;
       int outSegments = 0;
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.Densify(segment, maxDeviation, ref outSegments, ref outSegmentsArray);
       System.Windows.Forms.MessageBox.Show("The segment array contains : " + outSegments + " segments");
   }
IGeometryBridge.GetPoints Method
Populates an array with references to points in the Multipoint. The QueryPoints method on IPointCollection makes copies of the points.
Public Sub GetPoints ( _
    ByVal pPointCollection As IPointCollection4, _
    ByVal Index As Integer, _
    ByRef Points As IPoint[] _
)
public void GetPoints (
    IPointCollection4 pPointCollection,
    int Index,
    ref IPoint[] Points
);
Description
All development languages compatible version of IPointCollection::GetPoints .
public void GetPoints()
   {
       //prepare inputPoints
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IPoint[] inputPointArray = new IPoint[2];
       inputPointArray[0] = point1;
       inputPointArray[1] = point2;
       IPointCollection4 pointCollection = new MultipointClass();
       //add points to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddPoints(pointCollection, ref inputPointArray);
       //get Points
       int index = 0;
       IPoint[] outputPointArray = new IPoint[inputPointArray.Length - index];
       geometryBridge.GetPoints(pointCollection, index, ref outputPointArray);
       for (int i = 0; i < outputPointArray.Length; i++)
       {
           IPoint currentPoint = outputPointArray[i];
           if (currentPoint == null)
           {
               System.Windows.Forms.MessageBox.Show("Current point = null");
           }
           else
           {
               System.Windows.Forms.MessageBox.Show("X = " + currentPoint.X + ", Y = " + currentPoint.Y);
           }
       }
   }
IGeometryBridge.InsertGeometries Method
Inserts at the specified index references to some number of geometries in the input array.
Public Sub InsertGeometries ( _
    ByVal pGeometryCollection As IGeometryCollection, _
    ByVal Index As Integer, _
    ByRef newGeometries As IGeometry[] _
)
public void InsertGeometries (
    IGeometryCollection pGeometryCollection,
    int Index,
    ref IGeometry[] newGeometries
);
Description
All development languages compatible version of IGeometryCollection::InsertGeometries.
public void InsertGeometries()
   {
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IGeometry[] geometryArray = new IGeometry[2];
       geometryArray[0] = point1 as IGeometry;
       geometryArray[1] = point2 as IGeometry;
       //insert geometries at position 0
       IGeometryCollection geometryCollection = new MultipointClass();
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.InsertGeometries(geometryCollection, 0, ref geometryArray);
   }
IGeometryBridge.InsertPoints Method
Inserts copies of the input points as vertices into a Path, Ring, Polyline, or Polygon; or references to the input points into a Multipoint, Triangles, TriangleFan, or TriangleStrip.
Public Sub InsertPoints ( _
    ByVal pPointCollection As IPointCollection4, _
    ByVal Index As Integer, _
    ByRef newPoints As IPoint[] _
)
public void InsertPoints (
    IPointCollection4 pPointCollection,
    int Index,
    ref IPoint[] newPoints
);
Description
All development languages compatible version of IPointCollection::InsertPoints .
public void InsertPoints()
   {
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IPoint[] pointArray = new IPoint[2];
       pointArray[0] = point1;
       pointArray[1] = point2;
       IPointCollection4 pointCollection = new MultipointClass();
       //insert points to pointCollection starting at the given index
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       int index = 0;
       geometryBridge.InsertPoints(pointCollection, index, ref pointArray);
       //insert more points at a different index
       IPoint point3 = new PointClass();
       point3.PutCoords(30, 30);
       IPoint point4 = new PointClass();
       point4.PutCoords(40, 40);
       IPoint[] secondPointArray = new IPoint[2];
       secondPointArray[0] = point3;
       secondPointArray[1] = point4;
       int secondindex = 1;
       geometryBridge.InsertPoints(pointCollection, secondindex, ref secondPointArray);
   }
IGeometryBridge.InsertSegments Method
Inserts references to the input segments.
Public Sub InsertSegments ( _
    ByVal pSegmentCollection As ISegmentCollection, _
    ByVal Index As Integer, _
    ByRef newSegments As ISegment[] _
)
public void InsertSegments (
    ISegmentCollection pSegmentCollection,
    int Index,
    ref ISegment[] newSegments
);
Description
All development languages compatible version of ISegmentCollection::InsertSegments .
IGeometryBridge.InsertWKSPointZs Method
Inserts new vertices/points into this Path, Ring, Polyline, Polygon, Multipoint, Triangles, TriangleFan, TriangleStrip, or MultiPatch.
Public Sub InsertWKSPointZs ( _
    ByVal pPointCollection As IPointCollection4, _
    ByVal Index As Integer, _
    ByRef newPoints As WKSPointZ[] _
)
public void InsertWKSPointZs (
    IPointCollection4 pPointCollection,
    int Index,
    ref WKSPointZ[] newPoints
);
Description
All development languages compatible version of IPointCollection4::InsertWKSPointsZs .
public static void InsertWKSPointZs()
   {
       int length = 10;
       WKSPointZ[] pointArray = new WKSPointZ[length];
       for (int i = 0; i < length; i++)
       {
           pointArray[i] = new WKSPointZ();
           pointArray[i].X = i * 10;
           pointArray[i].Y = i * 10;
           pointArray[i].Z = i * 10;
       }
       IPointCollection4 pointCollection = new MultipointClass();
       // Make pointcollection ZAware
       IZAware zAware = (IZAware)pointCollection;
       zAware.ZAware = true;
       //add points to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddWKSPointZs(pointCollection, ref pointArray);
       //insert points
       int secondArrayLength = 5;
       WKSPointZ[] secondPointArray = new WKSPointZ[secondArrayLength];
       for (int i = 0; i < secondArrayLength; i++)
       {
           secondPointArray[i] = new WKSPointZ();
           secondPointArray[i].X = i * 33;
           secondPointArray[i].Y = i * 33;
           secondPointArray[i].Z = i * 33;
       }
       int index = 1;
       geometryBridge.InsertWKSPointZs(pointCollection, index, ref secondPointArray);
   }
IGeometryBridge.QueryBeginningRings Method
Populates an array with references to all beginning rings of the specified types.
Public Sub QueryBeginningRings ( _
    ByVal pMultiPatch As IMultiPatch, _
    ByVal ringTypesDesired As Integer, _
    ByRef beginningRings As IRing[] _
)
public void QueryBeginningRings (
    IMultiPatch pMultiPatch,
    int ringTypesDesired,
    ref IRing[] beginningRings
);
Description
All development languages compatible version of IMultipatch::QueryBeginningRings.
IGeometryBridge.QueryFollowingRings Method
Populates an array with references to following rings that are in the ring group that starts with the specified beginning ring.
Public Sub QueryFollowingRings ( _
    ByVal pMultiPatch As IMultiPatch, _
    ByVal beginningRing As IRing, _
    ByRef followingRings As IRing[] _
)
public void QueryFollowingRings (
    IMultiPatch pMultiPatch,
    IRing beginningRing,
    ref IRing[] followingRings
);
Description
All development languages compatible version of IMultipatch::QueryFollowingRings .
IGeometryBridge.QueryGeometries Method
Populates the array with references to a sub-sequence of geometries.
Public Sub QueryGeometries ( _
    ByVal pGeometryCollection As IGeometryCollection, _
    ByVal Index As Integer, _
    ByRef geometries As IGeometry[] _
)
public void QueryGeometries (
    IGeometryCollection pGeometryCollection,
    int Index,
    ref IGeometry[] geometries
);
Description
All development languages compatible version of IGeometryCollection::QueryGeometries.
public void QueryGeometries()
   {
       int inputLength = 10;
       IGeometry[] inputGeometryArray = new IGeometry[inputLength];
       for (int i = 0; i < inputLength; i++)
       {
           IPoint point = new PointClass();
           point.PutCoords(i * 10, i * 10);
           inputGeometryArray[i] = point as IGeometry;
       }
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       IGeometryCollection geometryCollection = new MultipointClass();
       //add geometries
       geometryBridge.AddGeometries(geometryCollection, ref inputGeometryArray);
       //query geometries starting from position 1
       int startIndex = 5;
       IGeometry[] outputGeometryArray = new IGeometry[inputLength - startIndex];
       for (int i = 0; i < outputGeometryArray.Length; i++)
       {
           outputGeometryArray[i] = new PointClass() as IGeometry;
       }
       geometryBridge.QueryGeometries(geometryCollection, startIndex, ref outputGeometryArray);
       for (int i = 0; i < outputGeometryArray.Length; i++)
       {
           //we know that the Geometry is a Point
           IPoint currentPoint = outputGeometryArray[i] as IPoint;
           System.Windows.Forms.MessageBox.Show("X = " + currentPoint.X + ", Y = " + currentPoint.Y);
       }
   }
IGeometryBridge.QueryPoints Method
Copies some points to an existing array of points.
Public Sub QueryPoints ( _
    ByVal pPointCollection As IPointCollection4, _
    ByVal Index As Integer, _
    ByRef Points As IPoint[] _
)
public void QueryPoints (
    IPointCollection4 pPointCollection,
    int Index,
    ref IPoint[] Points
);
Description
All development languages compatible version of IPointCollection::QueryPoints.
When calling this method no count parameter is needed. The length of the array parameter will be used in place of the explicit number given in the IPointCollection::QueryPoints call. This also requires that the array parameter given to IGeometryBridge::QueryPoints can not be longer than the length of the PointCollection minus the index parameter.
public void QueryPoints()
   {
       //prepare inputPoints
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IPoint[] inputPointArray = new IPoint[2];
       inputPointArray[0] = point1;
       inputPointArray[1] = point2;
       IPointCollection4 pointCollection = new MultipointClass();
       //add points to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddPoints(pointCollection, ref inputPointArray);
       //query Points
       int index = 0;
       IPoint[] outputPointArray = new IPoint[inputPointArray.Length - index];
       for (int i = 0; i < outputPointArray.Length; i++)
       {
           outputPointArray[i] = new PointClass();
       }
       geometryBridge.QueryPoints(pointCollection, index, ref outputPointArray);
       for (int i = 0; i < outputPointArray.Length; i++)
       {
           IPoint currentPoint = outputPointArray[i];
           if (currentPoint == null)
           {
               System.Windows.Forms.MessageBox.Show("Current point = null");
           }
           else
           {
               System.Windows.Forms.MessageBox.Show("X = " + currentPoint.X + ", Y = " + currentPoint.Y);
           }
       }
   }
IGeometryBridge.QuerySegments Method
Returns references to some of the input segments.
Public Sub QuerySegments ( _
    ByVal pSegmentCollection As ISegmentCollection, _
    ByVal Index As Integer, _
    ByRef segments As ISegment[] _
)
public void QuerySegments (
    ISegmentCollection pSegmentCollection,
    int Index,
    ref ISegment[] segments
);
Description
All development languages compatible version of ISegmentCollection::QuerySegments .
public void QuerySegments(ISegment[] segmentArray)
   {
       ISegmentCollection segmentCollection = new PolylineClass();
       //adds Segments to segmentCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddSegments(segmentCollection, ref segmentArray);
       //prepare output
       int index = 0;
       ISegment[] outputSegmentArray = new ISegment[segmentCollection.SegmentCount - index];
       for (int i = 0; i < outputSegmentArray.Length; i++)
       {
           outputSegmentArray[i] = new LineClass();
       }
       //query
       geometryBridge.QuerySegments(segmentCollection, index, ref outputSegmentArray);
       String report = "";
       for (int i = 0; i < outputSegmentArray.Length; i++)
       {
           ISegment currentSegment = outputSegmentArray[i];
           ILine currentLine = currentSegment as ILine;
           report = report + "index = " + i + " , FromPoint X = " + currentLine.FromPoint.X + " , FromPoint Y = " + currentLine.FromPoint.X;
           report = report + " , ToPoint X = " + currentLine.ToPoint.X + " , ToPoint Y = " + currentLine.ToPoint.X + "\n";
       }
       System.Windows.Forms.MessageBox.Show(report);
   }
IGeometryBridge.QueryWKSPointZs Method
Copies vertices/points coordinates to the array of point structures.
Public Sub QueryWKSPointZs ( _
    ByVal pPointCollection As IPointCollection4, _
    ByVal Index As Integer, _
    ByRef pointStructures As WKSPointZ[] _
)
public void QueryWKSPointZs (
    IPointCollection4 pPointCollection,
    int Index,
    ref WKSPointZ[] pointStructures
);
Description
All development languages compatible version of IPointCollection4::QueryWKSPointsZs .
public void QueryWKSPointZs()
   {
       int length = 10;
       WKSPointZ[] pointArray = new WKSPointZ[length];
       for (int i = 0; i < length; i++)
       {
           pointArray[i] = new WKSPointZ();
           pointArray[i].X = i * 10;
           pointArray[i].Y = i * 10;
           pointArray[i].Z = i * 10;
       }
       IPointCollection4 pointCollection = new MultipointClass();
       //adds WKSpointZs to pointCollection  I
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddWKSPointZs(pointCollection, ref pointArray);
       //prepare output
       int index = 0;
       WKSPointZ[] outPutPointArray = new WKSPointZ[pointCollection.PointCount - index];
       for (int i = 0; i < outPutPointArray.Length; i++)
       {
           outPutPointArray[i] = new WKSPointZ();
       }
       //query
       geometryBridge.QueryWKSPointZs(pointCollection, index, ref outPutPointArray);
       String report = "";
       for (int i = 0; i < outPutPointArray.Length; i++)
       {
           WKSPointZ currentPoint = outPutPointArray[i];
           report = report + "index = " + i + " ,X = " + currentPoint.X + " ,Y = " + currentPoint.Y + " ,Z = " + currentPoint.Z + "\n";
       }
       System.Windows.Forms.MessageBox.Show(report);
   }
IGeometryBridge.ReplacePoints Method
Replaces vertices/points within a PointCollection.
Public Sub ReplacePoints ( _
    ByVal pPointCollection As IPointCollection4, _
    ByVal Index As Integer, _
    ByVal goingAway As Integer, _
    ByRef newPoints As IPoint[] _
)
public void ReplacePoints (
    IPointCollection4 pPointCollection,
    int Index,
    int goingAway,
    ref IPoint[] newPoints
);
Description
All development languages compatible version of IPointCollection::ReplacePoints .
public void ReplacePoints()
   {
       int length = 10;
       IPoint[] pointArray = new IPoint[length];
       for (int i = 0; i < length; i++)
       {
           pointArray[i] = new PointClass();
           pointArray[i].PutCoords(i * 10, i * 10);
       }
       IPointCollection4 pointCollection = new MultipointClass();
       //add points to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddPoints(pointCollection, ref pointArray);
       //create replacement point
       IPoint point3 = new PointClass();
       point3.PutCoords(999, 999);
       IPoint point4 = new PointClass();
       point4.PutCoords(666, 666);
       IPoint point5 = new PointClass();
       point5.PutCoords(333, 333);
       IPoint[] replacementPointArray = new IPoint[3];
       replacementPointArray[0] = point3;
       replacementPointArray[1] = point4;
       replacementPointArray[2] = point5;
       geometryBridge.ReplacePoints(pointCollection, 2, 3, ref replacementPointArray);
   }
IGeometryBridge.ReplaceSegments Method
Removes and inserts from segments.
Public Sub ReplaceSegments ( _
    ByVal pSegmentCollection As ISegmentCollection, _
    ByVal Index As Integer, _
    ByVal goingAway As Integer, _
    ByRef newSegments As ISegment[] _
)
public void ReplaceSegments (
    ISegmentCollection pSegmentCollection,
    int Index,
    int goingAway,
    ref ISegment[] newSegments
);
Description
All development languages compatible version of ISegmentCollection::ReplaceSegments .
public static void ReplaceSegments(ISegment[] segmentArray)
   {
       ISegmentCollection segmentCollection = new PolylineClass();
       //adds Segments to segmentCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddSegments(segmentCollection, ref segmentArray);
       PrintSegments(segmentCollection, "Segments before replacement");
       int replaceLength = 5;
       ISegment[] replaceSegmentArray = new ISegment[replaceLength];
       for (int i = 0; i < replaceLength; i++)
       {
           ILine replaceLine = new LineClass();
           IPoint replaceFromPoint = new PointClass();
           replaceFromPoint.PutCoords(i * 666, i * 666);
           IPoint replaceToPoint = new PointClass();
           replaceToPoint.PutCoords(i * 333, i * 333);
           replaceLine.PutCoords(replaceFromPoint, replaceToPoint);
           replaceSegmentArray[i] = replaceLine as ISegment;
       }
       int index = 3;
       geometryBridge.ReplaceSegments(segmentCollection, index, replaceLength, ref replaceSegmentArray);
       PrintSegments(segmentCollection, "Segments after replacement");
   }
IGeometryBridge.SetGeometries Method
Replaces all geometries in the collection with the specified number of references to those in the input array.
Public Sub SetGeometries ( _
    ByVal pGeometryCollection As IGeometryCollection, _
    ByRef newGeometries As IGeometry[] _
)
public void SetGeometries (
    IGeometryCollection pGeometryCollection,
    ref IGeometry[] newGeometries
);
Description
All development languages compatible version of IGeometryCollection::SetGeometries .
public void SetGeometries()
   {
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IGeometry[] geometryArray = new IGeometry[2];
       geometryArray[0] = point1 as IGeometry;
       geometryArray[1] = point2 as IGeometry;
       IGeometryCollection geometryCollection = new MultipointClass();
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       //override all existing geometries and insert geometries from geometryArray
       geometryBridge.SetGeometries(geometryCollection, ref geometryArray);
   }
IGeometryBridge.SetPoints Method
Replaces all existing vertices of this Path, Ring, Polyline, or Polygon with copies of the input points; or all existing points of this Multipoint, Triangles, TriangleFan, or TriangleStrip with references to the input points.
Public Sub SetPoints ( _
    ByVal pPointCollection As IPointCollection4, _
    ByRef newPoints As IPoint[] _
)
public void SetPoints (
    IPointCollection4 pPointCollection,
    ref IPoint[] newPoints
);
Description
All development languages compatible version of IPointCollection::SetPoints .
public void SetPoints()
   {
       IPoint point1 = new PointClass();
       point1.PutCoords(10, 10);
       IPoint point2 = new PointClass();
       point2.PutCoords(20, 20);
       IPoint[] pointArray = new IPoint[2];
       pointArray[0] = point1;
       pointArray[1] = point2;
       IPointCollection4 pointCollection = new MultipointClass();
       //add points to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddPoints(pointCollection, ref pointArray);
       PrintPointCollectionSetPoints(pointCollection, "PointCollection before setting points");
       //set points - overrides all existing points
       IPoint point3 = new PointClass();
       point3.PutCoords(30, 30);
       IPoint point4 = new PointClass();
       point4.PutCoords(40, 40);
       IPoint point5 = new PointClass();
       point5.PutCoords(50, 50);
       IPoint[] secondPointArray = new IPoint[3];
       secondPointArray[0] = point3;
       secondPointArray[1] = point4;
       secondPointArray[2] = point5;
       geometryBridge.SetPoints(pointCollection, ref secondPointArray);
       PrintPointCollectionSetPoints(pointCollection, "PointCollection after setting points");
   }
IGeometryBridge.SetSegments Method
Replaces all segments with references to the input segments.
Public Sub SetSegments ( _
    ByVal pSegmentCollection As ISegmentCollection, _
    ByRef newSegments As ISegment[] _
)
public void SetSegments (
    ISegmentCollection pSegmentCollection,
    ref ISegment[] newSegments
);
Description
All development languages compatible version of ISegmentCollection::SetSegments .
public static void SetSegments(ISegment[] segmentArray)
   {
       ISegmentCollection segmentCollection = new PolylineClass();
       //adds Segments to segmentCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddSegments(segmentCollection, ref segmentArray);
       int insertLength = 5;
       ISegment[] insertSegmentArray = new ISegment[insertLength];
       for (int i = 0; i < insertLength; i++)
       {
           ILine insertLine = new LineClass();
           IPoint insertFromPoint = new PointClass();
           insertFromPoint.PutCoords(i * 666, i * 666);
           IPoint insertToPoint = new PointClass();
           insertToPoint.PutCoords(i * 333, i * 333);
           insertLine.PutCoords(insertFromPoint, insertToPoint);
           insertSegmentArray[i] = insertLine as ISegment;
       }
       geometryBridge.SetSegments(segmentCollection, ref insertSegmentArray);
   }
IGeometryBridge.SetWKSPointZs Method
Replaces all vertices/points of this Path, Ring, Polyline, Polygon, Multipoint, Triangles, TriangleFan, TriangleStrip, or MultiPatch with new ones.
Public Sub SetWKSPointZs ( _
    ByVal pPointCollection As IPointCollection4, _
    ByRef pointStructures As WKSPointZ[] _
)
public void SetWKSPointZs (
    IPointCollection4 pPointCollection,
    ref WKSPointZ[] pointStructures
);
Description
All development languages compatible version of IPointCollection4::SetWKSPointsZs .
public void SetWKSPointZs()
   {
       int length = 10;
       WKSPointZ[] pointArray = new WKSPointZ[length];
       for (int i = 0; i < length; i++)
       {
           pointArray[i] = new WKSPointZ();
           pointArray[i].X = i * 10;
           pointArray[i].Y = i * 10;
           pointArray[i].Z = i * 10;
       }
       IPointCollection4 pointCollection = new MultipointClass();
       IZAware zAware = (IZAware)pointCollection;
       zAware.ZAware = true;
       //add points to pointCollection
       IGeometryBridge geometryBridge = new GeometryEnvironmentClass();
       geometryBridge.AddWKSPointZs(pointCollection, ref pointArray);
       PrintSetWKSPointZs(pointCollection, "PointCollection before setting points");
       //set points - overrides all existing points
       int secondArrayLength = 5;
       WKSPointZ[] secondPointArray = new WKSPointZ[secondArrayLength];
       for (int i = 0; i < secondArrayLength; i++)
       {
           secondPointArray[i] = new WKSPointZ();
           secondPointArray[i].X = i * 33;
           secondPointArray[i].Y = i * 33;
           secondPointArray[i].Z = i * 33;
       }
       geometryBridge.SetWKSPointZs(pointCollection, ref secondPointArray);
       PrintSetWKSPointZs(pointCollection, "PointCollection after setting points");
   }
Classes that implement IGeometryBridge
| Classes | Description |
|---|---|
| GeometryEnvironment | Provides a way of creating geometries from different inputs and setting/getting global variables for controlling behavior of geometry methods. |
