test_region_pointtest_region_pointTestRegionPointTestRegionPoint (Operator)


test_region_pointtest_region_pointTestRegionPointTestRegionPoint — Test if the region contains a given point.


test_region_point(Regions : : Row, Column : IsInside)

Herror test_region_point(const Hobject Regions, const Hlong Row, const Hlong Column, Hlong* IsInside)

Herror T_test_region_point(const Hobject Regions, const Htuple Row, const Htuple Column, Htuple* IsInside)

void TestRegionPoint(const HObject& Regions, const HTuple& Row, const HTuple& Column, HTuple* IsInside)

Hlong HRegion::TestRegionPoint(const HTuple& Row, const HTuple& Column) const

Hlong HRegion::TestRegionPoint(Hlong Row, Hlong Column) const

static void HOperatorSet.TestRegionPoint(HObject regions, HTuple row, HTuple column, out HTuple isInside)

int HRegion.TestRegionPoint(HTuple row, HTuple column)

int HRegion.TestRegionPoint(int row, int column)


If an array of regions and one test point is provided, test_region_pointtest_region_pointTestRegionPointTestRegionPointTestRegionPoint tests if at least one input region of RegionsRegionsRegionsRegionsregions contains the single test point given in (RowRowRowRowrow,ColumnColumnColumnColumncolumn). If this is the case, IsInsideIsInsideIsInsideIsInsideisInside is set to TRUE, else to FALSE. Alternatively, if a single region and several test points are provided, test_region_pointtest_region_pointTestRegionPointTestRegionPointTestRegionPoint tests if at least one of the test points (given in RowRowRowRowrow,ColumnColumnColumnColumncolumn) is contained in the input region given in RegionsRegionsRegionsRegionsregions. If this is the case, IsInsideIsInsideIsInsideIsInsideisInside is set to TRUE, otherwise it is set to FALSE. If (RowRowRowRowrow,ColumnColumnColumnColumncolumn) are real-valued, rounding is performed internally since regions are pixel precise.


The test pixel is not contained in an empty region (no pixel of the region corresponds to the pixel). If all regions are empty IsInsideIsInsideIsInsideIsInsideisInside is set to FALSE.

In case of an empty input object (empty tuple) RegionsRegionsRegionsRegionsregions and set_system('no_object_result','true')set_system("no_object_result","true")SetSystem("no_object_result","true")SetSystem("no_object_result","true")SetSystem("no_object_result","true"), an empty tuple is returned in IsInsideIsInsideIsInsideIsInsideisInside. If set_system('no_object_result','false')set_system("no_object_result","false")SetSystem("no_object_result","false")SetSystem("no_object_result","false")SetSystem("no_object_result","false") was set, an exception is raised.

Execution Information


RegionsRegionsRegionsRegionsregions (input_object)  region(-array) objectHRegionHRegionHobject

Region(s) to be examined.

RowRowRowRowrow (input_control)  point.y(-array) HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Row index of the test pixel(s).

Default value: 100

ColumnColumnColumnColumncolumn (input_control)  point.x(-array) HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Column index of the test pixel(s).

Number of elements: Row == Column

Default value: 100

IsInsideIsInsideIsInsideIsInsideisInside (output_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Boolean result value.


If F is the area of one region, N is the number of regions, and M is the number of test points, the runtime complexity is O(ln(sqrt(F)) * N) in the case of one test point and several regions and O(ln(sqrt(F)) * M) in the case of one region and several test points.


The operator test_region_pointtest_region_pointTestRegionPointTestRegionPointTestRegionPoint returns the value 2 (H_MSG_TRUE) if the parameters are correct. The behavior in case of an empty object is set via the operator 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>). If necessary, an exception is raised.

Possible Predecessors

thresholdthresholdThresholdThresholdThreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing, connectionconnectionConnectionConnectionConnection


union1union1Union1Union1Union1, intersectionintersectionIntersectionIntersectionIntersection, area_centerarea_centerAreaCenterAreaCenterAreaCenter

See also