ClassesClassesClassesClasses | | | | Operators

symm_differencesymm_differenceSymmDifferencesymm_differenceSymmDifferenceSymmDifference (Operator)

Name

symm_differencesymm_differenceSymmDifferencesymm_differenceSymmDifferenceSymmDifference — Calculate the symmetric difference of two regions.

Signature

symm_difference(Region1, Region2 : RegionDifference : : )

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

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

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

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

HRegionArray HRegionArray::SymmDifference(const HRegionArray& Region2) const

void SymmDifference(const HObject& Region1, const HObject& Region2, HObject* RegionDifference)

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

void HOperatorSetX.SymmDifference(
[in] IHUntypedObjectX* Region1, [in] IHUntypedObjectX* Region2, [out] IHUntypedObjectX*RegionDifference)

IHRegionX* HRegionX.SymmDifference([in] IHRegionX* Region2)

static void HOperatorSet.SymmDifference(HObject region1, HObject region2, out HObject regionDifference)

HRegion HRegion.SymmDifference(HRegion region2)

Description

symm_differencesymm_differenceSymmDifferencesymm_differenceSymmDifferenceSymmDifference calculates the symmetric difference of two regions. Note that, internally, all regions of Region2Region2Region2Region2Region2region2 are united to a single region before the symmetric differences between the individual regions of Region1Region1Region1Region1Region1region1 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""store_empty_region""store_empty_region""store_empty_region""store_empty_region" determines the behavior in this case.

Parallelization

Parameters

Region1Region1Region1Region1Region1region1 (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Input region 1.

Region2Region2Region2Region2Region2region2 (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Input region 2.

RegionDifferenceRegionDifferenceRegionDifferenceRegionDifferenceRegionDifferenceregionDifference (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

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_differencesymm_differenceSymmDifferencesymm_differenceSymmDifferenceSymmDifference 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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) and the behavior in case of an empty input region via set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>). If necessary, an exception is raised.

Possible Successors

select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape, disp_regiondisp_regionDispRegiondisp_regionDispRegionDispRegion

See also

intersectionintersectionIntersectionintersectionIntersectionIntersection, union1union1Union1union1Union1Union1, union2union2Union2union2Union2Union2, complementcomplementComplementcomplementComplementComplement, differencedifferenceDifferencedifferenceDifferenceDifference

Module

Foundation


ClassesClassesClassesClasses | | | | Operators