ArcObjects Library Reference  (Geometry)    

IPolygon4.SimplifyEx Method

Same as ITopologicalOperator::Simplify, but with some additional options that affect performance and how the interior is classified.

[Visual Basic 6.0]
Sub SimplifyEx(
    ByVal preserveFromToPoints As Boolean, _
    ByVal closeRings As Boolean, _
    ByVal useXORRule As Boolean _
[Visual Basic .NET]
Public Sub SimplifyEx ( _
    ByVal preserveFromToPoints As Boolean, _
    ByVal closeRings As Boolean, _
    ByVal useXORRule As Boolean _
public void SimplifyEx (
    bool preserveFromToPoints,
    bool closeRings,
    bool useXORRule
public void simplifyEx (
    Boolean preserveFromToPoints,
    Boolean closeRings,
    Boolean useXORRule
HRESULT SimplifyEx(
  VARIANT_BOOL preserveFromToPoints,
  VARIANT_BOOL closeRings,



  preserveFromToPoints is a parameter of type VARIANT_BOOL


  closeRings is a parameter of type VARIANT_BOOL


  useXORRule is a parameter of type VARIANT_BOOL

Product Availability

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



preserveFromToPoints: Boolean value that determines if the from/to points of a ring in the polygon need to remain located at ring indexes 0 and PointCount-1 af the completion of the operation. Specify 'false' to improve performance of this operation.

closeRings : Boolean value that determines if the rings of the polygon must be closed prior to reconstruct the topology of the polygon. Specify false if you know that rings are closed or you are passing in spaghetti input that should not be checked for closure.

useXORRule: Boolean value that determines how the 'inside' of the polygon is determined. Specify true to use an even-odd counting rule: a point is inside the polygon if a horizontal line through that has encountered an odd number of boundaries to the left (overlapping boundaries count 1 for each overlap). Use this when the input consists of well-defined rings that need to be oriented correctly, have overlaps removed, etc. Specify false to use the default behavior, which iterates over a two step process: dangle removal, then "peeling off" of the largest unambiguous rings. This approach can remove more segments than the XOR-true approach, but is probably more appropriate for spaghetti input where segment overlaps should not be considered significant.


Here is an example of the different between XOR=TRUE vs. XOR= FALSE:

See Also

IPolygon4 Interface