intersection_contours_xldintersection_contours_xldIntersectionContoursXldIntersectionContoursXldintersection_contours_xld (Operator)
Name
intersection_contours_xldintersection_contours_xldIntersectionContoursXldIntersectionContoursXldintersection_contours_xld
— Calculate the intersection points of two XLD contours
Signature
Herror intersection_contours_xld(const Hobject Contour1, const Hobject Contour2, const char* IntersectionType, double* Row, double* Column, Hlong* IsOverlapping)
Herror T_intersection_contours_xld(const Hobject Contour1, const Hobject Contour2, const Htuple IntersectionType, Htuple* Row, Htuple* Column, Htuple* IsOverlapping)
Description
intersection_contours_xldintersection_contours_xldIntersectionContoursXldIntersectionContoursXldintersection_contours_xld
calculates the intersection points of the
XLD Contour1Contour1Contour1contour1contour_1
and XLD Contour2Contour2Contour2contour2contour_2
which, if any, are returned
in (RowRowRowrowrow
,ColumnColumnColumncolumncolumn
). The value in
IntersectionTypeIntersectionTypeIntersectionTypeintersectionTypeintersection_type
defines the way to calculate the
intersections points. By setting
IntersectionTypeIntersectionTypeIntersectionTypeintersectionTypeintersection_type
= 'self'"self""self""self""self", only the self intersections
within both contours are returned, i.e., the intersections within
Contour1Contour1Contour1contour1contour_1
and XLD Contour2Contour2Contour2contour2contour_2
. For
IntersectionTypeIntersectionTypeIntersectionTypeintersectionTypeintersection_type
= 'mutual'"mutual""mutual""mutual""mutual", only the intersections
between both contours are taken into account. The default value is
IntersectionTypeIntersectionTypeIntersectionTypeintersectionTypeintersection_type
= 'all'"all""all""all""all". In this case both, the self
and the mutual intersections are returned in RowRowRowrowrow
,ColumnColumnColumncolumncolumn
).
If parts of the contours overlap in more than one point
IsOverlappingIsOverlappingIsOverlappingisOverlappingis_overlapping
returns the value 1, otherwise 0 is returned.
IsOverlappingIsOverlappingIsOverlappingisOverlappingis_overlapping
is set with regard to both the self and mutual
overlap, regardless of the setting in IntersectionTypeIntersectionTypeIntersectionTypeintersectionTypeintersection_type
.
In case of a mutual overlap, the endpoints of the mutual segment are
returned in (RowRowRowrowrow
,ColumnColumnColumncolumncolumn
).
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
Contour1Contour1Contour1contour1contour_1
(input_object) xld_cont →
objectHXLDContHObjectHObjectHobject
First XLD contour.
Contour2Contour2Contour2contour2contour_2
(input_object) xld_cont →
objectHXLDContHObjectHObjectHobject
Second XLD contour.
IntersectionTypeIntersectionTypeIntersectionTypeintersectionTypeintersection_type
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Intersection points to be returned.
Default:
'all'
"all"
"all"
"all"
"all"
List of values:
'all'"all""all""all""all", 'mutual'"mutual""mutual""mutual""mutual", 'self'"self""self""self""self"
RowRowRowrowrow
(output_control) point.y(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinates of the intersection points.
ColumnColumnColumncolumncolumn
(output_control) point.x(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Column coordinates of the intersection points.
IsOverlappingIsOverlappingIsOverlappingisOverlappingis_overlapping
(output_control) integer →
HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Does a part of a contour lie above another contour part?
Result
If the parameters are valid, the operator intersection_contours_xldintersection_contours_xldIntersectionContoursXldIntersectionContoursXldintersection_contours_xld
returns the value 2 (
H_MSG_TRUE)
.
Alternatives
intersection_segmentsintersection_segmentsIntersectionSegmentsIntersectionSegmentsintersection_segments
,
intersection_segment_contour_xldintersection_segment_contour_xldIntersectionSegmentContourXldIntersectionSegmentContourXldintersection_segment_contour_xld
See also
intersection_segment_lineintersection_segment_lineIntersectionSegmentLineIntersectionSegmentLineintersection_segment_line
,
intersection_linesintersection_linesIntersectionLinesIntersectionLinesintersection_lines
,
intersection_line_contour_xldintersection_line_contour_xldIntersectionLineContourXldIntersectionLineContourXldintersection_line_contour_xld
Module
Foundation