Identificando el borde original de un polígono de unión

Tengo muchos polígonos, y después de hacer una unión de todos estos polígonos, obtengo un nuevo polígono grande. El algoritmo de unión es un recuadro negro y utiliza un proceso de biblioteca de terceros, que no pude controlar, y tampoco puedo esperar extraer ninguna información de algún tipo de progreso.

Existe una manera eficiente para que yo sepa, para cada borde de ese gran polígono sindical gigante, cuál de ellos pertenece a qué borde del polígono más pequeño?

Una forma de fuerza bruta para resolver este problema es comparar cada borde del polígono sindicalizado con cada uno de los polígonos más pequeños, pero esto será muy ineficiente. ¿Alguna otra técnica más eficiente?

Mi corazonada me dice que algoritmo de línea de barrido puede ayudar aquí, aunque no tengo ni idea de cómo hacerlo.

Editar: los npolígonos pequeños pueden superponerse, por lo que el polígono de unión puede contener puntos que se encuentran en los bordes de los polígonos pequeños, pero estos puntos pueden no ser los vértices de los polígonos originales.

A continuación se muestra una captura de pantalla de esto: