Union() public method

Calculates the resulting union of two polygon geometries.
public Union ( Polygon2 a, Polygon2 b ) : IPlanarGeometry
a Polygon2 A polygon.
b Polygon2 A polygon.
return IPlanarGeometry
Ejemplo n.º 1
0
        /// <summary>
        /// Calculates the symmetric difference between two polygons.
        /// </summary>
        /// <param name="a">A polygon.</param>
        /// <param name="b">A polygon.</param>
        /// <returns>The symmetric difference of <paramref name="a"/> and <paramref name="b"/>.</returns>
        public IPlanarGeometry Xor(Polygon2 a, Polygon2 b)
        {
            if (null == a)
            {
                return(b);
            }
            if (null == b)
            {
                return(a);
            }

            var removedFromA     = _differenceOperation.Difference(a, b) as Polygon2;
            var removedFromB     = _differenceOperation.Difference(b, a) as Polygon2;
            var unionedLeftovers = _unionOperation.Union(removedFromA, removedFromB);

            return(unionedLeftovers);
        }