Back to Aurora Vision Library website

You are here: Start » Function Reference » Geometry 2D » Geometry 2D Spatial Transforms » PointAlongPath


Header: AVL.h
Namespace: avl
Module: FoundationLite

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

Applications: Usually used to revert an ImageAlongPath transformation.


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


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


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


  • 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.


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.


List of possible exceptions:

Error type Description
DomainError Empty path on input in PointAlongPath.

See Also

  • ImageAlongPath – Creates an image from pixels traversed along a path.
  • PathAlongPath – Transforms a path to a coordinate system in which the 'axis' path is vertical or horizontal.
  • PointAlongArc – Transforms a point to a coordinate system in which the 'axis' arc is vertical or horizontal.