shape_transshape_transShapeTransShapeTrans (Operator)
Name
shape_transshape_transShapeTransShapeTrans
— Transform the shape of a region.
Signature
Description
shape_transshape_transShapeTransShapeTransShapeTrans
transforms the shape of the input regions
depending on the parameter TypeTypeTypeTypetype
:
- 'convex'
Convex hull.
- 'ellipse'
Ellipse with the same moments and area as the input region.
- 'outer_circle'
Smallest enclosing circle.
- 'inner_circle'
Largest circle fitting into the region.
- 'rectangle1'
Smallest enclosing rectangle parallel to the coordinate axes.
- 'rectangle2'
Smallest enclosing rectangle.
- 'inner_rectangle1'
Largest axis-parallel rectangle fitting into the region.
- 'inner_center'
The point on the skeleton of the input region having the smallest
distance to the center of gravity of the input region.
Attention
If TypeTypeTypeTypetype
= 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle" is selected it might
happen that the resulting circular region does not completely cover
the input region. This is because internally the operators
smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle
and gen_circlegen_circleGenCircleGenCircleGenCircle
are used to compute
the outer circle. As described in the documentation of
smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle
, the calculated radius can be too small by
up to pixels. Additionally, the
circle that is generated by gen_circlegen_circleGenCircleGenCircleGenCircle
is translated by up
to 0.5 pixels in both directions, i.e., by up to
pixels. Consequently, when adding up
both effects, the original region might protrude beyond the returned
circular region by at most 1 pixel.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
Parameters
RegionRegionRegionRegionregion
(input_object) region(-array) →
objectHRegionHRegionHobject
Regions to be transformed.
RegionTransRegionTransRegionTransRegionTransregionTrans
(output_object) region(-array) →
objectHRegionHRegionHobject *
Transformed regions.
TypeTypeTypeTypetype
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Type of transformation.
Default value:
'convex'
"convex"
"convex"
"convex"
"convex"
List of values: 'convex'"convex""convex""convex""convex", 'ellipse'"ellipse""ellipse""ellipse""ellipse", 'inner_center'"inner_center""inner_center""inner_center""inner_center", 'inner_circle'"inner_circle""inner_circle""inner_circle""inner_circle", 'inner_rectangle1'"inner_rectangle1""inner_rectangle1""inner_rectangle1""inner_rectangle1", 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle", 'rectangle1'"rectangle1""rectangle1""rectangle1""rectangle1", 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2"
Complexity
Let F be the area of the input region. Then the runtime
complexity is O(F).
Result
shape_transshape_transShapeTransShapeTransShapeTrans
returns 2 (H_MSG_TRUE) if all parameters are correct.
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>)
.
If necessary, an exception is raised.
Possible Predecessors
connectionconnectionConnectionConnectionConnection
,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing
Possible Successors
disp_regiondisp_regionDispRegionDispRegionDispRegion
,
regiongrowing_meanregiongrowing_meanRegiongrowingMeanRegiongrowingMeanRegiongrowingMean
,
area_centerarea_centerAreaCenterAreaCenterAreaCenter
See also
convexityconvexityConvexityConvexityConvexity
,
elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxis
,
area_centerarea_centerAreaCenterAreaCenterAreaCenter
,
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1
,
smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2
,
inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1InnerRectangle1
,
set_shapeset_shapeSetShapeSetShapeSetShape
,
select_shapeselect_shapeSelectShapeSelectShapeSelectShape
,
inner_circleinner_circleInnerCircleInnerCircleInnerCircle
Module
Foundation