I've been studying Geometric Algebra and I'm specially interested in the Conformal Model. The main reference I'm using is Leo Dorst (Geometric Algebra for Computer Science).
It's not clear to me how I can extract some properties of a flat, e.g. consider a line $l = p \wedge q \wedge \infty$ where $p$ and $q$ are points in the Conformal Model. I then wish to get the line direction, weight and support point. How can one do this?
In a similar note, consider a infinite point $p \wedge \infty$. Is it possible to extract the point $p$ this?
$\newcommand\R{\mathbb R} \newcommand\origin{{\oslash}} \newcommand\lcontr{\mathbin{\rfloor}} \newcommand\rcontr{\mathbin{\lfloor}} \newcommand\Point{\mathcal P} $So long as we don't care about the radius, we can indeed extract $p$ from $p\wedge\infty$, which I will call a flat point as this shows that such an object is just a point without a radius. Let $\origin$ be the origin point so that $x \in \R^3$ embeds as $$ p = \Point(x) = \origin + x - \frac12x^2\infty. $$ We will assume all points are normalized so that $p\cdot\infty = 1$; this also applies to $\origin$ so that $\origin\cdot\infty = 1$.
Point from Flat Point
We see $$ p\wedge\infty\rcontr\origin = (\origin\wedge\infty + x\wedge\infty)\rcontr\origin = \origin + x $$ Thus if $P = p\wedge\infty$ we have $$ p = P\rcontr\origin - \frac12(P\rcontr\origin)^2\infty. $$
Displacements
Let $p = \Point(x)$ and $q = \Point(y)$. Because of the disregard for radius, the difference $q\wedge\infty - p\wedge\infty = (q-p)\wedge\infty$ is a good model for pure directions. Indeed $$ V\rcontr\origin = (q-p)\wedge\infty\rcontr\origin = y-x. $$ Here we've used the convention that $\wedge$ binds tighter than $\lcontr$ and $\rcontr$. If we choose another origin $\origin' = \Point(z)$, then we see $$ V\rcontr\origin' = (y-x)\wedge\infty\rcontr\origin' = y-x - (y-x)\cdot z\,\infty. $$ This shows that the length of $V$ is origin-independent, so these objects model general displacements and not just directions.
Line Direction
Thus the line $l = p\wedge q\wedge\infty = p\wedge V$ can be thought of as a point $p$ wedged with a direction $V$. Now notice that $\infty\lcontr V = 0$; it follows that $$ \infty\lcontr l = V, $$ and if we desire we can then extract the (origin-dependent) $\R^3$ vector via $$ (\infty\lcontr l)\rcontr\origin = \infty\wedge\origin\lcontr l. $$
Weight of a line.
If $p' = \Point(x')$ is another point on the line $l$ we see $$ p'\wedge V - p\wedge V = (p-p')\wedge V = (x-x')\wedge(y-x)\wedge\infty = 0 $$ since $x-x'$ and $y-y'$ are parallel. So it doesn't matter what point $p$ in the form $p\wedge V$ is used to specify $l$ so long as it is a point on $l$. It follows that a natural definition of the weight of $l$ is the length of $V$; in terms of $l$ $$ \sqrt{(\infty\wedge\origin\lcontr l)^2} = |\infty\wedge\origin\lcontr l|, $$ so we would say a normalized line is of the form $$ \frac l{|\infty\wedge\origin\lcontr l|}. $$ In this expression, we may replace $\origin$ with any other normalized point. This can be improved, however. We can compute $$ (p\wedge q\wedge\infty)^2 = -\begin{vmatrix} p\cdot p & p\cdot q & p\cdot\infty \\ q\cdot p & q\cdot q & q\cdot\infty \\ \infty\cdot p & \infty\cdot q & \infty\cdot\infty \end{vmatrix} = -\begin{vmatrix} 0 & p\cdot q & 1 \\ q\cdot p & 0 & 1 \\ 1 & 1 & 0 \end{vmatrix} = -2p\cdot q. $$ Since $p\cdot q$ is $-1/2$ times the squared distance between $p$ and $q$, this shows that $l^2$ is exactly square of the length of $V$. So we can also normalize $l$ simply via $$ \frac l{\sqrt{l^2}}. $$
Support Points
A "support point" is just the projection of $\origin$ onto a given flat. We will want to flatten $\origin$ to $\origin\wedge\infty$ since the sum of two flat points is much easier to interpret and work with; $\alpha p\wedge\infty + \beta q\wedge\infty$ where $\alpha + \beta = 1$ is precisely the corresponding affine combination of the points $p$ and $q$ (as long as the fact that these are oriented points is taken into account). Additionally, working with flat points keeps us from having to worry about how the radius of a point is affected.
Let $l$ be a line. Then the support point $O_l$ is just $$ O_l = \origin\wedge\infty\lcontr l\,l^{-1}. $$ This should be intuitive; it is the the geometric algebra expression for a projection onto $l$. There are two ways to justify this that I know of. One is to simply work out the mechanics of $\lcontr$ for flat objections (i.e. flat points, line, planes), the crucial fact being that all of these have a factor of $\wedge\infty$; this is not too difficult. Alternatively, this is part of the manifestation of Plane-based Geometric Algebra (PGA) (with signature $({+}{+}{+}0)$) within $CGA$. This algebra is very naturally a model for flat Euclidean geometry and is much easier to reason about than CGA. In this approach, we simply take our CGA flats $\origin\wedge\infty$ and $l$ and turn them into PGA flats by multiplying by the pseudoscalar. Then we do the requisite PGA calculation and transform back; doing so you will find the above expression for $O_l$.
Once we have $O_l$, we can convert it into a CGA point using the method discussed before: $$ O_l\rcontr\origin - \frac12(O_l\rcontr\origin)^2. $$
Computation
If we choose a basis $e_1,e_2,e_3,\origin,\infty$, then all of the above is easy to implement on a computer as it mostly just involves extracting components.
A general flat point has the form $$ \alpha\origin\wedge\infty + \beta_1e_1\infty + \beta_2e_2\infty + \beta_3e_3\infty. $$ It is a displacement if $\alpha = 0$. Otherwise, we can convert it directly to an (unnormalized) CGA point via $$ \alpha\origin + \beta_1e_1 + \beta_2e_3 + \beta_3e_3 - \frac1{2\alpha} (\beta_1^2 + \beta_2^2 + \beta_3^2)\infty. $$
A general line has the form $$ \alpha_1e_1\origin\wedge\infty + \alpha_2e_2\origin\wedge\infty + \alpha_3e_3\origin\wedge\infty + \beta_1e_2e_3\infty + \beta_2e_3e_1\infty + \beta_3e_1e_2\infty. $$ Its flat direction is $$ -\alpha_1e_1\infty - \alpha_2e_2\infty - \alpha_3\infty $$ so its squared weight is $$ \alpha_1^2 + \alpha_2^2 + \alpha_3^2. $$ The support point is much more complicated, and I will most likely make a mistake if I try to write it out.