Back to Aurora Vision Library website

# PointAlongPath

Transforms a point to a coordinate system in which the 'axis' path is vertical or horizontal.

Applications: Usually used to revert an ImageAlongPath transformation.

### Syntax

C++
C#

void avl::PointAlongPath
(
const avl::Point2D& inPoint,
const avl::Path& inAxis,
avl::Axis::Type inAxisType,
float inAxisCoordinate,
bool inInverse,
avl::Point2D& outPoint
)


### Parameters

Name Type Default Description
inPoint const Point2D& Input point
inAxis const Path& Input axis path
inAxisType Axis::Type Y Type of axis the input axis path is parallel to
inAxisCoordinate float 0.0f Coordinate of the axis path
inInverse bool True Switches to the inverse operation
outPoint Point2D& Transformed point

### Description

This operation transforms a point - inPoint - between two coordinate systems: the one linked with 'axis' path inAxis and the original one. Direction of this conversion is based on inInverse value:

• if it is true, inPoint is converted to original coordinate system
• if it is false, inPoint is converted from original coordinate system

Coordinate system linked with inAxis is some transformation of the original one, satisfying these conditions:

• 'axis' path is represented as a straight line
• 'axis' path is horizontal if inAxisType is set to X or vertical if inAxisType is set to Y
• if inAxisType is set to X, the Y coordinate of 'axis' path is equal to inAxisCoordinate. If inAxisType is set to Y, the X coordinate of 'axis' path is equal to inAxisCoordinate

### Hints

• If this filter is used to reverse ImageAlongPath transformation you should set inAxis and inAxisType to the same values as corresponding ones in ImageAlongPath. inAxisCoordinate should be set to a half of ImageAlongPath.inScanWidth.

### Examples

ImageAlongPath performed on the sample image with inAxisType = X, inScanWidth = 50 and path marked with blue. Point marked with blue cross on the output image was calculated by ScanSingleEdge. Original point (marked with orange cross) was calculated using PointAlongPath with inAxisType = X, inAxisCoordinate = 25, inInverse = true and position of detected point. ImageAlongPath and PointAlongPath used the same path for transformations.

### Errors

List of possible exceptions:

Error type Description
DomainError Empty path on input in PointAlongPath.