Back to Aurora Vision Library website

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

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.

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

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.

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.