65 VSR_PRECISION talpha = ( vec <= v)[0] * alpha;
68 auto wt = p2 <= GAInf<A>(1);
69 return Round::loc( p2 / -wt );
83 VSR_PRECISION talpha = ( p <= v)[0] * alpha;
85 auto wt = p2 <= GAInf<A>(1);
86 return Round::loc( p2 / -wt );
100 VSR_PRECISION talpha = ( p <= v)[0] * alpha;
102 auto wt = p2 <= GAInf<A>(1);
103 return Round::loc( p2 / -wt );
118 GAPnt<A> pb = pa.trs( -Flat::dir( line ).
template copy<
GAVec<A>>().unit() );
136 GAPnt<A> pb = pa.trs( -Flat::dir( line ).
template copy<
GAVec<A> >().unit() );
146 GAPnt<A> pb = pa.trs( -Flat::dir( line.dual() ).
template copy<
GAVec<A>>().unit() );
148 return (tpa ^ tpb ^
GAInf<A>(1)).dual();
156 GAPnt<A> pb = pa.trs( -Flat::dir( line.dual() ).
template copy<
GAVec<A> >().unit() );
158 return (ipa ^ ipb ^
GAInf<A>(1)).dual();
166 auto ca = ( Round::dls(pa, 1) ^ plane.dual() ).dual();
167 auto pb = Round::pnt_cir(ca, 0);
168 auto pc = Round::pnt_cir(ca, PIOVERFOUR);
173 return tpa ^ tpb ^ tpc ^
GAInf<A>(1);
181 auto ca = ( Round::dls(pa, 1) ^ plane.dual() ).dual();
182 auto pb = Round::pnt_cir(ca, 0);
183 auto pc = Round::pnt_cir(ca, PIOVERFOUR);
188 return tpa ^ tpb ^ tpc ^
GAInf<A>(1);
195 auto ca = ( Round::dls(pa, 1) ^ plane ).dual();
196 auto pb = Round::pnt_cir(ca, 0);
197 auto pc = Round::pnt_cir(ca, PIOVERFOUR);
203 return (ipa ^ ipb ^ ipc ^
GAInf<A>(1)).dual();
210 auto ca = ( Round::dls(pa, 1) ^ plane ).dual();
211 auto pb = Round::pnt_cir(ca, 0);
212 auto pc = Round::pnt_cir(ca, PIOVERFOUR);
218 return (ipa ^ ipb ^ ipc ^
GAInf<A>(1) ).dual();
conic transforms
Definition: vsr_conic.h:48
static GAPnt< A > ITransform(const GAPnt< A > &p, const GAVec< A > &v, VSR_PRECISION alpha)
Inverse Transform of a vsr::cga::Point.
Definition: vsr_conic.h:99
static GAPnt< A > Transform(const GAPnt< A > &p, const GAVec< A > &v, VSR_PRECISION alpha)
Transform a vsr::cga::Point.
Definition: vsr_conic.h:82
static GADll< A > Transform(const GADll< A > &line, const GAVec< A > &v, VSR_PRECISION alpha)
Transform a dual line in direction v with eccentricity alpha.
Definition: vsr_conic.h:143
static GALin< A > Transform(const GALin< A > &line, const GAVec< A > &v, VSR_PRECISION alpha)
Transform a vsr::cga::Point.
Definition: vsr_conic.h:115
Generic Geometric Number Types (templated on an algebra and a basis )
Definition: vsr_algebra.h:69
Multivector< algebra, typename algebra::vector_basis > null() const
Conformal Mapping \(\boldsymbol(x)\to n_o + \boldsymbol{x} + \boldsymbol{x}^2n_\infty \) ...
Definition: vsr_generic_op.h:1118
static GADlp< A > Transform(const GADlp< A > &plane, const GAVec< A > &v, VSR_PRECISION alpha)
Transform a dual plane in direction v with eccentricity alpha.
Definition: vsr_conic.h:193
#define PAO
vsr::cga::Point At Origin
Definition: vsr_cga3D_op.h:634
static GAPln< A > ITransform(const GAPln< A > &plane, const GAVec< A > &v, VSR_PRECISION alpha)
Inverse Transform a plane in direction v with eccentricity alpha.
Definition: vsr_conic.h:178
core namespaced operations that are metric-agnostic
static GADlp< A > ITransform(const GADlp< A > &plane, const GAVec< A > &v, VSR_PRECISION alpha)
Inverse Transform a dual plane in direction v with eccentricity alpha.
Definition: vsr_conic.h:208
static GADll< A > ITransform(const GADll< A > &line, const GAVec< A > &v, VSR_PRECISION alpha)
Inverse Transform a dual line in direction v with eccentricity alpha.
Definition: vsr_conic.h:153
the versor library namespace
Definition: vsr_algebra.h:29
static GALin< A > ITransform(const GALin< A > &line, const GAVec< A > &v, VSR_PRECISION alpha)
Transform a vsr::cga::Point.
Definition: vsr_conic.h:133
static GAPln< A > Transform(const GAPln< A > &plane, const GAVec< A > &v, VSR_PRECISION alpha)
Transform a plane in direction v with eccentricity alpha.
Definition: vsr_conic.h:163
static GAPnt< A > Transform(const GAVec< A > &vec, const GAVec< A > &v, VSR_PRECISION alpha)
Transform a vsr::cga::Vec.
Definition: vsr_conic.h:64