ClassesClassesClassesClasses | | | | Operators

shape_transshape_transShapeTransshape_transShapeTransShapeTrans (Operator)

Name

shape_transshape_transShapeTransshape_transShapeTransShapeTrans — Transform the shape of a region.

Signature

shape_trans(Region : RegionTrans : Type : )

Herror shape_trans(const Hobject Region, Hobject* RegionTrans, const char* Type)

Herror T_shape_trans(const Hobject Region, Hobject* RegionTrans, const Htuple Type)

Herror shape_trans(Hobject Region, Hobject* RegionTrans, const HTuple& Type)

HRegion HRegion::ShapeTrans(const HTuple& Type) const

HRegionArray HRegionArray::ShapeTrans(const HTuple& Type) const

void ShapeTrans(const HObject& Region, HObject* RegionTrans, const HTuple& Type)

HRegion HRegion::ShapeTrans(const HString& Type) const

HRegion HRegion::ShapeTrans(const char* Type) const

void HOperatorSetX.ShapeTrans(
[in] IHUntypedObjectX* Region, [out] IHUntypedObjectX*RegionTrans, [in] VARIANT Type)

IHRegionX* HRegionX.ShapeTrans([in] BSTR Type)

static void HOperatorSet.ShapeTrans(HObject region, out HObject regionTrans, HTuple type)

HRegion HRegion.ShapeTrans(string type)

Description

shape_transshape_transShapeTransshape_transShapeTransShapeTrans transforms the shape of the input regions depending on the parameter TypeTypeTypeTypeTypetype:

'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 TypeTypeTypeTypeTypetype = 'outer_circle'"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_circleSmallestCirclesmallest_circleSmallestCircleSmallestCircle and gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle are used to compute the outer circle. As described in the documentation of smallest_circlesmallest_circleSmallestCirclesmallest_circleSmallestCircleSmallestCircle, the calculated radius can be too small by up to pixels. Additionally, the circle that is generated by gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle 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.

Parallelization

Parameters

RegionRegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Regions to be transformed.

RegionTransRegionTransRegionTransRegionTransRegionTransregionTrans (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Transformed regions.

TypeTypeTypeTypeTypetype (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Type of transformation.

Default value: 'convex' "convex" "convex" "convex" "convex" "convex"

List of values: 'convex'"convex""convex""convex""convex""convex", 'ellipse'"ellipse""ellipse""ellipse""ellipse""ellipse", 'inner_center'"inner_center""inner_center""inner_center""inner_center""inner_center", 'inner_circle'"inner_circle""inner_circle""inner_circle""inner_circle""inner_circle", 'inner_rectangle1'"inner_rectangle1""inner_rectangle1""inner_rectangle1""inner_rectangle1""inner_rectangle1", 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle""outer_circle", 'rectangle1'"rectangle1""rectangle1""rectangle1""rectangle1""rectangle1", 'rectangle2'"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_transShapeTransshape_transShapeTransShapeTrans 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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

connectionconnectionConnectionconnectionConnectionConnection, regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing

Possible Successors

disp_regiondisp_regionDispRegiondisp_regionDispRegionDispRegion, regiongrowing_meanregiongrowing_meanRegiongrowingMeanregiongrowing_meanRegiongrowingMeanRegiongrowingMean, area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter

See also

convexityconvexityConvexityconvexityConvexityConvexity, elliptic_axiselliptic_axisEllipticAxiselliptic_axisEllipticAxisEllipticAxis, area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter, smallest_rectangle1smallest_rectangle1SmallestRectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1, smallest_rectangle2smallest_rectangle2SmallestRectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2, inner_rectangle1inner_rectangle1InnerRectangle1inner_rectangle1InnerRectangle1InnerRectangle1, set_shapeset_shapeSetShapeset_shapeSetShapeSetShape, select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape, inner_circleinner_circleInnerCircleinner_circleInnerCircleInnerCircle

Module

Foundation


ClassesClassesClassesClasses | | | | Operators