You are here: Start » AVL.NET » AVL.SegmentPath Method

AVL.SegmentPath Method

Splits a path into parts that can be approximated as segments or arcs.

Namespace:AvlNet
Assembly:AVL.NET.dll

Syntax

public static void SegmentPath(
	AvlNet.Path inPath,
	float inSmoothingStdDev,
	float inMaxDeviation,
	AvlNet.PathSegmentationMode inSegmentationMode,
	float? inMaxArcRadius,
	out AvlNet.Path[] outStraight,
	out AvlNet.Path[] outArciform,
	out AvlNet.Segment2D[] outSegments,
	out AvlNet.Arc2D[] outArcs
)

Parameters

Name Type Range Default Description
inPathAvlNet.PathPath to be segmented.
inSmoothingStdDevfloat<0.0f, INF>Standard deviation used for initial gaussian smoothing of the segmented path.
inMaxDeviationfloat<0.0f, INF>0.5fMaximal distance between any point of a classified segment to the abstract shape. Default value: 0.5f.
inSegmentationModeAvlNet.PathSegmentationModeWhether to use arcs for segmentation.
inMaxArcRadiusfloat?<0.0f, INF>10.0fMaximal radius of an arc fitted to segment. Default value: 10.0f, or null.
outStraightAvlNet.PathParts classified as straight segments.
outArciformAvlNet.PathParts classified as arciform segments.
outSegmentsAvlNet.Segment2DSegments corresponding to sections of path from outStraight.
outArcsAvlNet.Arc2DArcs corresponding to sections of path from outArciform.

Description

The operation segments the inPath into parts of preferably simple shape. Each of the resulting parts is classified as one of the following:

  • Straight section - in which case it is returned in outStraight output array
  • Arciform section - in which case it is returned in outArciform output array

The operation guarantees that the maximal distance from any of the resulting path section to the corresponding abstract shape (line segment or circular arc) is less than inMaxDeviation.

Examples

The resulting outStraight array (some of the paths in the picture have common ends but in fact each straight part is a separate path).

The resulting outArciform array.

Errors

Error type Description
DomainError Empty input path in SegmentPath

See also