You are here: Start » Filter Reference » Path » Path Combinators » JoinAdjacentPaths
Module: | FoundationPro |
---|
Joins those paths of an array which endpoints lie near enough.
Name | Type | Range | Description | |
---|---|---|---|---|
inPaths | PathArray | |||
inMaxDistance | Real | 0.0 - | Maximal distance between paths that can be joined | |
inMaxAngle | Real | 0.0 - 180.0 | Maximal allowed angle between paths being joined | |
inMaxDeviation | Real* | 0.0 - | Maximal allowed thickness of a minimal stripe containing both paths being joined | |
inExcessTrim | Real | 0.0 - | Length of the part of each path to be removed from its both sides | |
inEndingLength | Real* | 0.0 - | Determines the length of the path end used for path angle computing | |
inJoiningMethod | PathJoiningMethod | Determines a method to join two paths in one | ||
inAngleMeasure | PathJoiningAngleMeasure | Determines a method to measure the angle between two input paths | ||
inIgnorePathEndsOrder | Bool | If set to false, only the end of a path can be joined with the begin of another path | ||
inAllowCycles | Bool | Determines if cycles can be created during joining process | ||
inMinPathLength | Real | 0.0 - | Minimal length of a path | |
outPaths | PathArray | |||
outMatchedPieces | PathArray | Input paths that have been joined with another path |
Description
The operation repeatedly connects the pair of endpoints of open paths of an array until no such pair can be connected. If an endpoint can be joined with more than one another, the endpoint which generates smallest joining value is chosen. The joining value is computed by combining distance between endpoints being joined, their angle difference and their deviation value. An endpoint can be joined with another one in its vicinity only if the distance between them is not greater than inMaxDistance. Their angle difference, which is computed in one of available ways depending on inAngleMeasure value, cannot be greater than inMaxAngle. Their deviation value, which is the thickness of a minimal stripe containing both path endings being joined, cannot exceed inMaxDeviation.
Before joining process begins, the input paths are shortened by inExcessTrim on both their ends. The parameter makes it possible to use the filter for paths that can be a bit curly on their ends.
While joining takes place, the inEndingLength parameter determines what part of the path ending is used to determine the angle between two paths. If it is set to Nil, the segment connecting path begin and path end is decisive.
There are also two flags controlling the joining process. If the inIgnorePathEndsOrder is set, a path begin can also be joined with another path begin and a path end with another path end. Otherwise a path begin can be joined with a path end only. The inAllowCycles parameter determines if a cycle is allowed to emerge during joining. Finally, after the joining phase paths that are shorter than inMinPathLength are removed from the final results.
Examples
Complexity Level
This filter is available on Advanced Complexity Level.
See Also
- ClosePath – Adds the segment connecting the last point with the first one in a path.