differencedifferenceDifferenceDifferencedifference (Operator)

Name

differencedifferenceDifferenceDifferencedifference — Calculate the difference of two regions.

Signature

difference(Region, Sub : RegionDifference : : )

Herror difference(const Hobject Region, const Hobject Sub, Hobject* RegionDifference)

Herror T_difference(const Hobject Region, const Hobject Sub, Hobject* RegionDifference)

void Difference(const HObject& Region, const HObject& Sub, HObject* RegionDifference)

HRegion HRegion::Difference(const HRegion& Sub) const

static void HOperatorSet.Difference(HObject region, HObject sub, out HObject regionDifference)

HRegion HRegion.Difference(HRegion sub)

def difference(region: HObject, sub: HObject) -> HObject

Description

differencedifferenceDifferenceDifferenceDifferencedifference calculates the set-theoretic difference of two regions: (Regions in Region) - (Regions in Sub) The resulting region is defined as the input region (RegionRegionRegionRegionregionregion) with all points from SubSubSubSubsubsub removed. Note that, internally, all regions of SubSubSubSubsubsub are united to a single region before the differences between the individual regions of RegionRegionRegionRegionregionregion and the united region are calculated.

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.

Execution Information

Parameters

RegionRegionRegionRegionregionregion (input_object)  region(-array) objectHRegionHObjectHRegionHobject

Regions to be processed.

SubSubSubSubsubsub (input_object)  region(-array) objectHRegionHObjectHRegionHobject

The union of these regions is subtracted from Region.

RegionDifferenceRegionDifferenceRegionDifferenceRegionDifferenceregionDifferenceregion_difference (output_object)  region(-array) objectHRegionHObjectHRegionHobject *

Resulting region.

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Example (C)

/* provides the region X without the points in Y */
difference(X,Y,&RegionDifference);

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Example (HDevelop)

* provides the region X without the points in Y
difference(X,Y,RegionDifference)

Complexity

Let N be the number of regions, F_1 be their average area, and F_2 be the total area of all regions in SubSubSubSubsubsub. Then the runtime complexity is O(F_1 * log(F_1) + N * (sqrt(F_1) + sqrt(F_2))).

Result

differencedifferenceDifferenceDifferenceDifferencedifference always returns the value 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>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("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>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

thresholdthresholdThresholdThresholdThresholdthreshold, connectionconnectionConnectionConnectionConnectionconnection, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, pouringpouringPouringPouringPouringpouring, class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm

Possible Successors

select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape, disp_regiondisp_regionDispRegionDispRegionDispRegiondisp_region

See also

intersectionintersectionIntersectionIntersectionIntersectionintersection, union1union1Union1Union1Union1union1, union2union2Union2Union2Union2union2, complementcomplementComplementComplementComplementcomplement, symm_differencesymm_differenceSymmDifferenceSymmDifferenceSymmDifferencesymm_difference

Module

Foundation