Skip to content

symm_differenceSymmDifferenceSymmDifferencesymm_differencesymm_difference🔗

Short description🔗

symm_differenceSymmDifferenceSymmDifferencesymm_differencesymm_difference — Calculate the symmetric difference of two regions.

Signature🔗

symm_difference( region Region1, region Region2, out region RegionDifference )void SymmDifference( const HObject& Region1, const HObject& Region2, HObject* RegionDifference )static void HOperatorSet.SymmDifference( HObject region1, HObject region2, out HObject regionDifference )def symm_difference( region_1: HObject, region_2: HObject ) -> HObject

Herror symm_difference( const Hobject Region1, const Hobject Region2, Hobject* RegionDifference )

Herror T_symm_difference( const Hobject Region1, const Hobject Region2, Hobject* RegionDifference )

HRegion HRegion::SymmDifference( const HRegion& Region2 ) const

HRegion HRegion.SymmDifference( HRegion region2 )

Description🔗

symm_differenceSymmDifference calculates the symmetric difference of two regions. Note that, internally, all regions of Region2region2region_2 are united to a single region before the symmetric differences between the individual regions of Region1region1region_1 and the united region are calculated. Two possible definitions of the symmetric difference can be seen in the example below. A third definition is to regard the exclusive or of the two regions.

Attention🔗

Empty regions are valid for both parameters. On output, empty regions may result. The value of the system flag 'store_empty_region'"store_empty_region" determines the behavior in this case.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

Parameters🔗

Region1region1region_1 (input_object) region(-array) → objectHObjectHRegionHObjectHobject

Input region 1.

Region2region2region_2 (input_object) region(-array) → objectHObjectHRegionHObjectHobject

Input region 2.

RegionDifferenceregionDifferenceregion_difference (output_object) region(-array) → objectHObjectHRegionHObjectHobject *

Resulting region.

Example🔗

(HDevelop)

* Simulate the symmetric difference of Region1 and Region2 with
* difference and union:
difference(Region1, Region2, Diff1)
difference(Region2, Region1, Diff2)
union2(Diff1, Diff2, Difference)

* Simulate the symmetric difference of Region1 and Region2 with
* union, intersection, and difference:
union2(Region1, Region2, Union)
intersection(Region1, Region2, Intersection)
difference(Union, Intersection, Difference)

Result🔗

symm_differenceSymmDifference always returns the value 2 (H_MSG_TRUE). The behavior in case of empty input (no regions given) can be set via set_system('no_object_result',<Result>) and the behavior in case of an empty input region via set_system('empty_region_result',<Result>). If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible successors

select_shapeSelectShape, disp_regionDispRegion

See also

intersectionIntersection, union1Union1, union2Union2, complementComplement, differenceDifference

Module🔗

Foundation