library of assembled shared sources |
http://lass.cocamware.com |
#include <line_2d.h>
Data Structures | |
struct | Rebind |
Public Types | |
typedef Line2D< T, EquationPolicy, NormalizingPolicy > | TSelf |
typedef impl::Line2DImpl< T, EquationPolicy, NormalizingPolicy >::Type | TImpl |
typedef TImpl::TPoint | TPoint |
typedef TImpl::TVector | TVector |
typedef TImpl::TParam | TParam |
typedef TImpl::TValue | TValue |
typedef TImpl::TReference | TReference |
typedef TImpl::TConstReference | TConstReference |
typedef TImpl::TNumTraits | TNumTraits |
enum | { dimension = TPoint::dimension } |
typedef NormalizingPolicy | TNormalizingPolicy |
Public Member Functions | |
Line2D () | |
Line2D (const TPoint &iSupport, const TPoint &iPoint) | |
Line2D (const TPoint &iSupport, const TVector &iDir) | |
Line2D (const TVector &iNormal, const TPoint &iSupport) | |
Line2D (const TVector &iNormal, TParam iD) | |
const Side | classify (const TPoint &iPoint) const |
Return on what side a point is located. | |
const TValue | signedDistance (const TPoint &iPoint) const |
Return signed distance of point to line. | |
const TValue | squaredDistance (const TPoint &iPoint) const |
Return signed distance of point to line. | |
const Side | classify (const TPoint &iPoint, TParam iRelativeTolerance) const |
Return on what side a point is located. | |
const TValue | signedDistance (const TPoint &iPoint, TParam iRelativeTolerance) const |
Return signed distance of point to line. | |
const TValue | squaredDistance (const TPoint &iPoint, TParam iRelativeTolerance) const |
Return signed distance of point to line. | |
const TPoint | support () const |
return generated support point. | |
const TVector | direction () const |
return generated direction vector. | |
void | getCartesian (TVector &oNormal, TReference oD) const |
const TVector & | normal () const |
TParam | d () const |
const TValue | equation (const TPoint &iPoint) const |
Return value of point in equation. | |
const TValue | equation (const TPoint &iPoint, TParam iRelativeTolerance) const |
Return value of point in equation, snapped to zero by iRelativeTolerance. | |
const TVector | reject (const TPoint &iPoint) const |
return the vector that, if added to the PROJECTION of iPoint, you get iPoint again. | |
const TVector | reject (const TVector &iVector) const |
return the part of iVector that is orthogonal to the line. | |
const TPoint | project (const TPoint &iPoint) const |
project a point orthogonally onto the line | |
const TVector | project (const TVector &iVector) const |
project a vector orthogonally onto the line | |
const TPoint | reflect (const TPoint &iPoint) const |
reflect a point orthogonally into the line. | |
const TVector | reflect (const TVector &iVector) const |
reflect a vector orthogonally into the line | |
const TPoint | point (TParam iT) const |
return point by filling in parameter in generated parametric equation | |
const TValue | t (const TPoint &iPoint) const |
return parameter along generated paremetric equation. | |
void | flip () |
const bool | isValid () const |
return true if line is a valid line (no normal or direction vectors that are zero). | |
Related Functions | |
(Note that these are not member functions.) | |
template<typename T , class EP , class NP > | |
T | distance (const Point2D< T > &iA, const Line2D< T, EP, NP > &iB) |
absolute distance between point and line. | |
template<typename T , class EPa , class NPa , class EPb , class NPb > | |
T | distance (const Line2D< T, EPa, NPa > &iA, const Line2D< T, EPb, NPb > &iB) |
absolute distance between two lines | |
template<typename T , class EPa , class NPa , class EPb , class NPb > | |
Result | intersect (const Line2D< T, EPa, NPa > &iA, const Line2D< T, EPb, NPb > &iB, T &oTa, T &oTb) |
intersection of two lines | |
template<typename T , class EPa , class NPa , class EPb , class NPb > | |
Result | intersect (const Line2D< T, EPa, NPa > &iA, const Line2D< T, EPb, NPb > &iB, Point2D< T > &oPoint) |
intersection of two lines | |
template<typename T > | |
io::XmlOStream & | operator<< (io::XmlOStream &ioOStream, const Line2D< T, Cartesian > &iLine) |
template<typename T > | |
io::XmlOStream & | operator<< (io::XmlOStream &ioOStream, const Line2D< T, Parametric > &iLine) |
template<typename T > | |
io::XmlOStream & | operator<< (io::XmlOStream &ioOStream, const Line2D< T, Combined > &iLine) |
template<typename T , class PPa , class PPb > | |
Result | intersect (const LineSegment2D< T, PPa > &a, const LineSegment2D< T, PPb > &b, Point2D< T > &point) |
intersection of two line segments |
N.P+S=0
, or we can use a parametric equation P=S+t*U
. This class lets you choose what implementation you want: a pure cartesian model, a pure parametric model, or a model that combines both. This is done by moving all code to implemenations impl::Line2DCartesian, impl::Line2DParametric or impl::Line2DCombined. Line2D will inherit its implementation of the model you've choosen. You can select the one you want by specifying the template parameter EquationPolicy. You can either use Cartesian (which is the default), Parametric or Combined. Each of them will model the line differently. They all provide the same interface, but might have different results. They might have different memory footprints, different performances, and are optimized for different purposes. Cartesian will select an implementation that only uses the cartesian equation and will be the smallest and the fastest for most purposes (that's why it is the default :). But sometimes, you might more like the Parametric model, because it has better support for direction vectors, but it'll have to calculate the normal on the spot if you need it. Combined is the workhorse for heavy duties and implements both..TSelf:
the type of this TImpl:
type of implemantion, can be impl::Line2DCartesian, impl::Line2DParametric or impl::Line2DCombined.TNormalizingPolicy:
the type you've used as NormalizingPolicy.TPoint:
type of a afine point in space.TVector:
type of a vector in space.TValue:
same as util::CallTraits<T>::TValue.TParam:
same as util::CallTraits<T>::TParam.TReference:
same as util::CallTraits<T>::TReference.TConstReference:
same as util::CallTraits<T>::TConstReference.TNumTraits:
same as num::NumTraits<T>.Now, we have a series of accessors that give you access to the internal data of the line, including support point, direction vectors, normal vector, ... Only Line2DCombined will be able to pull these directly from its internals, but the others don't have all data aboard, so they have to generate them. Be carefull, because it's not always what you suspect.
support()
. If you've created the line by a direction vector ot two points (which leads to the direction vector), then models Line2DParametric and Line2DCombined will give you back these originals (for Unnormalized lines only! but in case of Normalized lines, they still correspond with the original directions). Line2DCartesian has to regenerate them, but it will result in the same direction vector as the others.
signedDistances()
as described below. Again you might have a performance hit for the Line2DParametric model because of the need of the cartesian equation.classify()
). The real (absolute) distances is simply the absolute value of the result. For Normalized lines signedDistances()
will be equal to equation()
. But for Unnormalized lines signedDistances still divides through the normal's length Again performance hit for Line2DParametric because of the need of the cartesian equation.reject
(iPoint-S), see below). But more descriptive might be: it is the vector you have to add to the projection of this point on the line (given by project(iPoint)
, see below), to get back iPoint: iPoint==project
(iPoint)+reject(iPoint). Again performance hit for Line2DParametric because of the cartesian equation.iPoint==project
(iPoint)+reject(iPoint). Again performance hit for Line2DParametric because of the cartesian equation.iVector==project
(iVector)+reject(iVector). Again performance hit for Line2DParametric because of the cartesian equation.reflect(iPoint)==project
(iPoint)-reject(iPoint). Again performance hit for Line2DParametric because of the cartesian equation.reflect(iVector)==project
(iVector)-reject(iVector). Again performance hit for Line2DParametric because of the cartesian equation.
P=S+iT*U
. In case of Line2DCartesian, we have the same remarks as for direction(): not only we have a performance hit, we probably also have to deal with totally different direction vectors than the ones we have put in the constructor.iPoint==S+t*U
. In theory, if you put this back in point()
, you should end up with the projection of iPoint: point
(t(iPoint))==project(iPoint) ? Well, this is not totally true. In practice, numerical imprecisions will probably give you a slightly different result. You'll be very close, but the last bits will differ enough to make the them inequal. But with some epsilons, you'll be alright.N=-N
and d=-d
. Of the parametric equation, direction vector U is flipped: U=-U
.Definition at line 305 of file line_2d.h.
typedef Line2D<T, EquationPolicy, NormalizingPolicy> lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TSelf |
typedef impl::Line2DImpl<T, EquationPolicy, NormalizingPolicy>::Type lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TImpl |
typedef TImpl::TPoint lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TPoint |
Reimplemented from lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >.
typedef TImpl::TVector lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TVector |
Reimplemented from lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >.
typedef TImpl::TParam lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TParam |
Reimplemented from lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >.
typedef TImpl::TValue lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TValue |
Reimplemented from lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >.
typedef TImpl::TReference lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TReference |
Reimplemented from lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >.
typedef TImpl::TConstReference lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TConstReference |
Reimplemented from lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >.
typedef TImpl::TNumTraits lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::TNumTraits |
Reimplemented from lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >.
typedef NormalizingPolicy lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::TNormalizingPolicy [inherited] |
Definition at line 69 of file line_2d_cartesian.h.
anonymous enum [inherited] |
lass::prim::Line2D< T, EP, NP >::Line2D | ( | ) | [inline] |
Definition at line 62 of file line_2d.inl.
lass::prim::Line2D< T, EP, NP >::Line2D | ( | const TPoint & | iSupport, | |
const TPoint & | iPoint | |||
) | [inline] |
Definition at line 71 of file line_2d.inl.
lass::prim::Line2D< T, EP, NP >::Line2D | ( | const TPoint & | iSupport, | |
const TVector & | iDir | |||
) | [inline] |
Definition at line 79 of file line_2d.inl.
lass::prim::Line2D< T, EP, NP >::Line2D | ( | const TVector & | iNormal, | |
const TPoint & | iSupport | |||
) | [inline] |
Definition at line 87 of file line_2d.inl.
lass::prim::Line2D< T, EP, NP >::Line2D | ( | const TVector & | iNormal, | |
TParam | iD | |||
) | [inline] |
Definition at line 95 of file line_2d.inl.
const Side lass::prim::Line2D< T, EP, NP >::classify | ( | const TPoint & | iPoint | ) | const [inline] |
Return on what side a point is located.
Definition at line 105 of file line_2d.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::equation(), lass::prim::sBack, lass::prim::sFront, lass::prim::sSurface, and lass::num::NumTraits< C >::zero.
Referenced by lass::prim::Ray2D< T, NormalizingPolicy, ParameterPolicy >::intersect(), and lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::intersect().
const Line2D< T, EP, NP >::TValue lass::prim::Line2D< T, EP, NP >::signedDistance | ( | const TPoint & | iPoint | ) | const [inline] |
Return signed distance of point to line.
negative value means point is in the back.
Definition at line 118 of file line_2d.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::equation(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal().
Referenced by lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::distance(), and lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::squaredDistance().
const Line2D< T, EP, NP >::TValue lass::prim::Line2D< T, EP, NP >::squaredDistance | ( | const TPoint & | iPoint | ) | const [inline] |
Return signed distance of point to line.
negative value means point is in the back.
Definition at line 130 of file line_2d.inl.
References lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::signedDistance(), and sqr().
const Side lass::prim::Line2D< T, EP, NP >::classify | ( | const TPoint & | iPoint, | |
TParam | iRelativeTolerance | |||
) | const [inline] |
Return on what side a point is located.
Definition at line 140 of file line_2d.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::equation(), lass::prim::sBack, lass::prim::sFront, lass::prim::sSurface, and lass::num::NumTraits< C >::zero.
const Line2D< T, EP, NP >::TValue lass::prim::Line2D< T, EP, NP >::signedDistance | ( | const TPoint & | iPoint, | |
TParam | iRelativeTolerance | |||
) | const [inline] |
Return signed distance of point to line.
negative value means point is in the back.
Definition at line 153 of file line_2d.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::equation(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal().
const Line2D< T, EP, NP >::TValue lass::prim::Line2D< T, EP, NP >::squaredDistance | ( | const TPoint & | iPoint, | |
TParam | iRelativeTolerance | |||
) | const [inline] |
Return signed distance of point to line.
negative value means point is in the back.
Definition at line 165 of file line_2d.inl.
References lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::signedDistance(), and sqr().
const Line2DCartesian< T, NP >::TPoint lass::prim::impl::Line2DCartesian< T, NP >::support | ( | ) | const [inline, inherited] |
return generated support point.
Definition at line 141 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::d_, and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::distance(), lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::intersect(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::point(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::t().
const Line2DCartesian< T, NP >::TVector lass::prim::impl::Line2DCartesian< T, NP >::direction | ( | ) | const [inline, inherited] |
return generated direction vector.
Definition at line 151 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_, and lass::prim::Vector2D< T >::perp().
Referenced by lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::distance(), lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::intersect(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::point(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::t().
void lass::prim::impl::Line2DCartesian< T, NP >::getCartesian | ( | TVector & | oNormal, | |
TReference | oD | |||
) | const [inline, inherited] |
Definition at line 159 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::d_, and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_.
const Line2DCartesian< T, NP >::TVector & lass::prim::impl::Line2DCartesian< T, NP >::normal | ( | ) | const [inline, inherited] |
Definition at line 168 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::Ray2D< T, NormalizingPolicy, ParameterPolicy >::intersect(), and lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::signedDistance().
Line2DCartesian< T, NP >::TParam lass::prim::impl::Line2DCartesian< T, NP >::d | ( | ) | const [inline, inherited] |
Definition at line 176 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::d_.
Referenced by lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::equation().
const Line2DCartesian< T, NP >::TValue lass::prim::impl::Line2DCartesian< T, NP >::equation | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
Return value of point in equation.
Definition at line 187 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::d_, lass::prim::dot(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_, and lass::prim::Point2D< T >::position().
Referenced by lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::classify(), lass::prim::Ray2D< T, NormalizingPolicy, ParameterPolicy >::intersect(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::reject(), and lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::signedDistance().
const Line2DCartesian< T, NP >::TValue lass::prim::impl::Line2DCartesian< T, NP >::equation | ( | const TPoint & | iPoint, | |
TParam | iRelativeTolerance | |||
) | const [inline, inherited] |
Return value of point in equation, snapped to zero by iRelativeTolerance.
Definition at line 198 of file line_2d_cartesian.inl.
References lass::num::almostEqual(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::d(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::d_, lass::prim::dot(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_, lass::prim::Point2D< T >::position(), and lass::num::NumTraits< C >::zero.
const Line2DCartesian< T, NP >::TVector lass::prim::impl::Line2DCartesian< T, NP >::reject | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
return the vector that, if added to the PROJECTION of iPoint, you get iPoint again.
iPoint == (almost) project(iPoint) + reject(iPoint)
Definition at line 211 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::equation(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::project(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::reflect().
const Line2DCartesian< T, NP >::TVector lass::prim::impl::Line2DCartesian< T, NP >::reject | ( | const TVector & | iVector | ) | const [inline, inherited] |
return the part of iVector that is orthogonal to the line.
it's the vector that, if added to the PROJECTION of iVector, you get iVector again. iVector == (almost) project(iVector) + reject(iVector).
Definition at line 224 of file line_2d_cartesian.inl.
References lass::prim::dot(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_.
const Line2DCartesian< T, NP >::TPoint lass::prim::impl::Line2DCartesian< T, NP >::project | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
project a point orthogonally onto the line
Definition at line 235 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::reject().
const Line2DCartesian< T, NP >::TVector lass::prim::impl::Line2DCartesian< T, NP >::project | ( | const TVector & | iVector | ) | const [inline, inherited] |
project a vector orthogonally onto the line
Definition at line 246 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::reject().
const Line2DCartesian< T, NP >::TPoint lass::prim::impl::Line2DCartesian< T, NP >::reflect | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
reflect a point orthogonally into the line.
Definition at line 257 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::reject(), and lass::stde::T.
const Line2DCartesian< T, NP >::TVector lass::prim::impl::Line2DCartesian< T, NP >::reflect | ( | const TVector & | iVector | ) | const [inline, inherited] |
reflect a vector orthogonally into the line
Definition at line 268 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::reject(), and lass::stde::T.
const Line2DCartesian< T, NP >::TPoint lass::prim::impl::Line2DCartesian< T, NP >::point | ( | TParam | iT | ) | const [inline, inherited] |
return point by filling in parameter in generated parametric equation
Definition at line 279 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::direction(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::support().
Referenced by lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::intersect().
const Line2DCartesian< T, NP >::TValue lass::prim::impl::Line2DCartesian< T, NP >::t | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
return parameter along generated paremetric equation.
Definition at line 289 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::direction(), lass::prim::dot(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::support().
void lass::prim::impl::Line2DCartesian< T, NP >::flip | ( | ) | [inline, inherited] |
Definition at line 298 of file line_2d_cartesian.inl.
References lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::d_, and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_.
const bool lass::prim::impl::Line2DCartesian< T, NP >::isValid | ( | ) | const [inline, inherited] |
return true if line is a valid line (no normal or direction vectors that are zero).
Definition at line 309 of file line_2d_cartesian.inl.
References lass::prim::Vector2D< T >::isZero(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::distance(), lass::prim::Ray2D< T, NormalizingPolicy, ParameterPolicy >::intersect(), lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::intersect(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::Line2DCartesian().
T distance | ( | const Point2D< T > & | iA, | |
const Line2D< T, EP, NP > & | iB | |||
) | [related] |
absolute distance between point and line.
iA | point | |
iB | line |
Definition at line 189 of file line_2d.inl.
References lass::num::abs(), and lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::signedDistance().
T distance | ( | const Line2D< T, EPa, NPa > & | iA, | |
const Line2D< T, EPb, NPb > & | iB | |||
) | [related] |
absolute distance between two lines
iA | line A | |
iB | line B |
Definition at line 203 of file line_2d.inl.
References lass::num::abs(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::direction(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::isValid(), LASS_ASSERT, lass::prim::perpDot(), lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::signedDistance(), and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::support().
Result intersect | ( | const Line2D< T, EPa, NPa > & | iA, | |
const Line2D< T, EPb, NPb > & | iB, | |||
T & | oTa, | |||
T & | oTb | |||
) | [related] |
intersection of two lines
iA | line A | |
iB | line B | |
oTa | parameter of intersection point on line A | |
oTb | parameter of intersection point on line B |
Definition at line 235 of file line_2d.inl.
References lass::prim::Line2D< T, EquationPolicy, NormalizingPolicy >::classify(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::direction(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::isValid(), LASS_ASSERT, lass::prim::perpDot(), lass::prim::rInfinite, lass::prim::rInvalid, lass::prim::rNone, lass::prim::rOne, lass::prim::sBack, lass::prim::sFront, lass::prim::sSurface, and lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::support().
Result intersect | ( | const Line2D< T, EPa, NPa > & | iA, | |
const Line2D< T, EPb, NPb > & | iB, | |||
Point2D< T > & | oPoint | |||
) | [related] |
intersection of two lines
iA | line A | |
iB | line B | |
oPoint | intersection point |
Definition at line 285 of file line_2d.inl.
References lass::prim::intersect(), lass::prim::impl::Line2DCartesian< T, NormalizingPolicy >::point(), lass::prim::rOne, and lass::stde::T.
io::XmlOStream & operator<< | ( | io::XmlOStream & | ioOStream, | |
const Line2D< T, Cartesian > & | iLine | |||
) | [related] |
io::XmlOStream & operator<< | ( | io::XmlOStream & | ioOStream, | |
const Line2D< T, Parametric > & | iLine | |||
) | [related] |
io::XmlOStream & operator<< | ( | io::XmlOStream & | ioOStream, | |
const Line2D< T, Combined > & | iLine | |||
) | [related] |
Result intersect | ( | const LineSegment2D< T, PPa > & | a, | |
const LineSegment2D< T, PPb > & | b, | |||
Point2D< T > & | point | |||
) | [related] |
intersection of two line segments
a | [in] line segment A | |
b | [in] line segment B | |
point | [out] intersection point |
Definition at line 276 of file line_segment_2d.inl.
References lass::prim::Point2DH< T >::affine(), lass::prim::intersect(), lass::prim::LineSegment2D< T, ParameterPolicy >::point(), lass::prim::rOne, and lass::stde::T.
Generated on Mon Nov 10 14:22:13 2008 for Library of Assembled Shared Sources by 1.5.7.1 |