[#mp_units-frame_projection]
= xref:mp_units.adoc[mp&lowbar;units]::frame&lowbar;projection
:relfileprefix: ../
:mrdocs:

User&hyphen;specializable variable template for runtime coordinate frame transformations&period;

== Synopsis

Declared in `&lt;mp&hyphen;units&sol;framework&sol;quantity&lowbar;point&lowbar;concepts&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    &sol;&ast; implementation-defined &ast;&sol; auto From,
    &sol;&ast; implementation-defined &ast;&sol; auto To&gt;
requires (From !&equals; To)
inline constexpr &sol;&ast; implementation-defined &ast;&sol; frame&lowbar;projection = frame&lowbar;projection;
----

== Description

Connects pairs of absolute point origin values with user&hyphen;supplied callables&period; Specialize per (From, To) pair with a callable invocable as&colon; frame&lowbar;projection&lt;From, To&gt;(quantity&lowbar;point&lowbar;at&lowbar;From, extra&lowbar;args&period;&period;&period;) &hyphen;&gt; quantity&lowbar;point&lowbar;at&lowbar;To

Both directions must be explicitly specialized — the library never derives an inverse&period; The primary template defaults to `detail&colon;&colon;undefined&lowbar;t&lcub;&rcub;` so that `detail&colon;&colon;HasFrameProjection` can detect whether a specialization exists&period;


[.small]#Created with https://www.mrdocs.com[MrDocs]#
