library of assembled shared sources |
http://lass.cocamware.com |
#include <plane_3d.h>
Data Structures | |
struct | Rebind |
Public Types | |
typedef Plane3D< T, EquationPolicy, NormalizingPolicy > | TSelf |
typedef impl::Plane3DImpl< 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 |
typedef Point2D< T > | TUV |
Public Member Functions | |
Plane3D () | |
Plane3D (const TPoint &iSupport, const TPoint &iPointU, const TPoint &iPointV) | |
Plane3D (const TPoint &iSupport, const TVector &iDirU, const TVector &iDirV) | |
Plane3D (const TVector &iNormal, const TPoint &iSupport) | |
Plane3D (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 plane. | |
const TValue | squaredDistance (const TPoint &iPoint) const |
Return squared distance of point to plane. | |
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 plane. | |
const TValue | squaredDistance (const TPoint &iPoint, TParam iRelativeTolerance) const |
Return squared distance of point to plane. | |
const XYZ | majorAxis () const |
determines the major axis of the normal vector. | |
const TPoint | support () const |
return support point. | |
void | getDirections (TVector &oDirectionU, TVector &oDirectionV) const |
return U and V direction vectors | |
const TVector | directionU () const |
return U direction vector. | |
const TVector | directionV () const |
return V direction vector. | |
void | getReciprocals (TVector &oReciprocalU, TVector &oReciprocalV) const |
return reciprocal vectors for U and V direction vectors | |
const TVector | reciprocalU () const |
return reciprocal for U direction vector. | |
const TVector | reciprocalV () const |
return reciprocal for V direction vector. | |
void | getCartesian (TVector &oNormal, TReference oD) const |
const TVector & | normal () const |
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. | |
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 plane. | |
const TPoint | project (const TPoint &iPoint) const |
project a point orthogonally onto the plane | |
const TVector | project (const TVector &iVector) const |
project a vector orthogonally onto the plane | |
const TPoint | reflect (const TPoint &iPoint) const |
reflect a point orthogonally into the plane. | |
const TVector | reflect (const TVector &iVector) const |
reflect a vector orthogonally into the plane | |
const TPoint | point (TParam iU, TParam iV) const |
return point by filling in the parametric equation: P(u, v) = S + u * U + v * V | |
const TPoint | point (const TUV &iUV) const |
return point by filling in the parametric equation: P(u, v) = S + u * U + v * V | |
const TUV | uv (const TPoint &iPoint) const |
return UV pair of parameters | |
void | flip () |
const bool | isValid () const |
return true if plane is a valid plane (no normal or direction vectors that are zero). | |
Related Functions | |
(Note that these are not member functions.) | |
template<typename T , class EP , class NP , class PP > | |
LineSegment3D< T, PP > | reflect (const Plane3D< T, EP, NP > &plane, const LineSegment3D< T, PP > &lineSegment) |
reflect a linesegment in a plane. | |
template<typename T , class EP , class NP , class PP > | |
LineSegment3D< T, PP > | project (const Plane3D< T, EP, NP > &plane, const LineSegment3D< T, PP > &lineSegment) |
project a linesegment on a plane. | |
template<typename T > | |
io::XmlOStream & | operator<< (io::XmlOStream &ioOStream, const Plane3D< T, Cartesian > &iPlane) |
template<typename T > | |
io::XmlOStream & | operator<< (io::XmlOStream &ioOStream, const Plane3D< T, Parametric > &iPlane) |
template<typename T > | |
io::XmlOStream & | operator<< (io::XmlOStream &ioOStream, const Plane3D< T, Combined > &iPlane) |
template<typename T , class EP1 , class NP1 , class EP2 , class NP2 > | |
SimplePolygon3D< T, EP2, NP2 > | clip (const Plane3D< T, EP1, NP1 > &iPlane, const SimplePolygon3D< T, EP2, NP2 > &iPolygon) |
Clip a polygon to a plane. |
EquationPolicy
. You can either use Cartesian (which is the default), Parametric or Combined. Each of them will model the plane 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 :). For texture mapping, 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. Plus, it buffers the reciprocal direction vectors, so finding the parameters (x, y) of a point on the plane can happen faster.TSelf:
the type of this
TImpl:
type of implemantion, can be impl::Plane3DCartesian, impl::Plane3DParametric or impl::Plane3DCombined.TNormalizingPolicy:
the type you've used as NormalizingPolicy.TPoint:
type of a afine point in space.TVector:
type of a vector in space.TUV:
a pair of values (u, v) for the parametric equation P = S + u*U + v*V.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 plane, including support point, direction vectors, normal vector, ... Only Plane3DCombined 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.
Definition at line 360 of file plane_3d.h.
typedef Plane3D<T, EquationPolicy, NormalizingPolicy> lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TSelf |
Definition at line 364 of file plane_3d.h.
typedef impl::Plane3DImpl<T, EquationPolicy, NormalizingPolicy>::Type lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TImpl |
Definition at line 365 of file plane_3d.h.
typedef TImpl::TPoint lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TPoint |
Reimplemented from lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >.
Definition at line 367 of file plane_3d.h.
typedef TImpl::TVector lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TVector |
Reimplemented from lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >.
Definition at line 368 of file plane_3d.h.
typedef TImpl::TParam lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TParam |
Reimplemented from lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >.
Definition at line 369 of file plane_3d.h.
typedef TImpl::TValue lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TValue |
Reimplemented from lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >.
Definition at line 370 of file plane_3d.h.
typedef TImpl::TReference lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TReference |
Reimplemented from lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >.
Definition at line 371 of file plane_3d.h.
typedef TImpl::TConstReference lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TConstReference |
Reimplemented from lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >.
Definition at line 372 of file plane_3d.h.
typedef TImpl::TNumTraits lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::TNumTraits |
Reimplemented from lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >.
Definition at line 373 of file plane_3d.h.
typedef NormalizingPolicy lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::TNormalizingPolicy [inherited] |
Definition at line 87 of file plane_3d_cartesian.h.
typedef Point2D<T> lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::TUV [inherited] |
Definition at line 91 of file plane_3d_cartesian.h.
anonymous enum [inherited] |
lass::prim::Plane3D< T, EP, NP >::Plane3D | ( | ) | [inline] |
Definition at line 59 of file plane_3d.inl.
lass::prim::Plane3D< T, EP, NP >::Plane3D | ( | const TPoint & | iSupport, | |
const TPoint & | iPointU, | |||
const TPoint & | iPointV | |||
) | [inline] |
Definition at line 68 of file plane_3d.inl.
lass::prim::Plane3D< T, EP, NP >::Plane3D | ( | const TPoint & | iSupport, | |
const TVector & | iDirU, | |||
const TVector & | iDirV | |||
) | [inline] |
Definition at line 78 of file plane_3d.inl.
lass::prim::Plane3D< T, EP, NP >::Plane3D | ( | const TVector & | iNormal, | |
const TPoint & | iSupport | |||
) | [inline] |
Definition at line 88 of file plane_3d.inl.
lass::prim::Plane3D< T, EP, NP >::Plane3D | ( | const TVector & | iNormal, | |
TParam | iD | |||
) | [inline] |
Definition at line 96 of file plane_3d.inl.
const Side lass::prim::Plane3D< T, EP, NP >::classify | ( | const TPoint & | iPoint | ) | const [inline] |
Return on what side a point is located.
Definition at line 106 of file plane_3d.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::equation(), lass::prim::sBack, lass::prim::sFront, lass::prim::sSurface, and lass::num::NumTraits< C >::zero.
Referenced by lass::prim::Ray3D< T, NormalizingPolicy, ParameterPolicy >::intersect().
const Plane3D< T, EP, NP >::TValue lass::prim::Plane3D< T, EP, NP >::signedDistance | ( | const TPoint & | iPoint | ) | const [inline] |
Return signed distance of point to plane.
negative value means point is in the back.
Definition at line 119 of file plane_3d.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::equation(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal().
Referenced by lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::squaredDistance().
const Plane3D< T, EP, NP >::TValue lass::prim::Plane3D< T, EP, NP >::squaredDistance | ( | const TPoint & | iPoint | ) | const [inline] |
Return squared distance of point to plane.
Definition at line 130 of file plane_3d.inl.
References lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::signedDistance(), and sqr().
const Side lass::prim::Plane3D< 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 plane_3d.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::equation(), lass::prim::sBack, lass::prim::sFront, lass::prim::sSurface, and lass::num::NumTraits< C >::zero.
const Plane3D< T, EP, NP >::TValue lass::prim::Plane3D< T, EP, NP >::signedDistance | ( | const TPoint & | iPoint, | |
TParam | iRelativeTolerance | |||
) | const [inline] |
Return signed distance of point to plane.
negative value means point is in the back.
Definition at line 153 of file plane_3d.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::equation(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal().
const Plane3D< T, EP, NP >::TValue lass::prim::Plane3D< T, EP, NP >::squaredDistance | ( | const TPoint & | iPoint, | |
TParam | iRelativeTolerance | |||
) | const [inline] |
Return squared distance of point to plane.
Definition at line 164 of file plane_3d.inl.
References lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::signedDistance(), and sqr().
const XYZ lass::prim::Plane3D< T, EP, NP >::majorAxis | ( | ) | const [inline] |
determines the major axis of the normal vector.
The major axis is the one with the largest (absolute) component value. e.g. if the normal vector is (-1, 4, -8), this will be the z axis because abs(-8) > abs(4) > abs(-1). In case there's more than one major axis possible, the "highest" index is choosen. e.g. if the normal vector is (1, 1, 0), then y axis will be choosen, because y has a higher index than x .
Definition at line 179 of file plane_3d.inl.
References lass::num::abs(), LASS_ASSERT, lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal(), lass::prim::Vector3D< T >::transform(), lass::prim::Vector3D< T >::x, lass::prim::Vector3D< T >::y, and lass::prim::Vector3D< T >::z.
Referenced by lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::clip(), and lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::majorAxis().
const Plane3DCartesian< T, NP >::TPoint lass::prim::impl::Plane3DCartesian< T, NP >::support | ( | ) | const [inline, inherited] |
return support point.
Definition at line 134 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::d_, and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::point(), lass::prim::Transformation3D< T >::transform(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::uv().
void lass::prim::impl::Plane3DCartesian< T, NP >::getDirections | ( | TVector & | oDirectionU, | |
TVector & | oDirectionV | |||
) | const [inline, inherited] |
return U and V direction vectors
Definition at line 144 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DImplDetail::generateDirections(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionU(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionV(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getReciprocals(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::point().
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< T, NP >::directionU | ( | ) | const [inline, inherited] |
return U direction vector.
Definition at line 156 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionV(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getDirections().
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionV(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getReciprocals(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::point(), and lass::prim::Transformation3D< T >::transform().
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< T, NP >::directionV | ( | ) | const [inline, inherited] |
return V direction vector.
Definition at line 169 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionU(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getDirections().
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionU(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getReciprocals(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::point(), and lass::prim::Transformation3D< T >::transform().
void lass::prim::impl::Plane3DCartesian< T, NP >::getReciprocals | ( | TVector & | oReciprocalU, | |
TVector & | oReciprocalV | |||
) | const [inline, inherited] |
return reciprocal vectors for U and V direction vectors
Definition at line 182 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionU(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionV(), lass::prim::impl::Plane3DImplDetail::generateReciprocal(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getDirections().
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalU(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalV(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::uv().
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< T, NP >::reciprocalU | ( | ) | const [inline, inherited] |
return reciprocal for U direction vector.
Definition at line 196 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getReciprocals(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalV().
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalV(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::uv().
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< T, NP >::reciprocalV | ( | ) | const [inline, inherited] |
return reciprocal for V direction vector.
Definition at line 209 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getReciprocals(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalU().
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalU(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::uv().
void lass::prim::impl::Plane3DCartesian< T, NP >::getCartesian | ( | TVector & | oNormal, | |
TReference | oD | |||
) | const [inline, inherited] |
Definition at line 220 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::d_, and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::clip().
const Plane3DCartesian< T, NP >::TVector & lass::prim::impl::Plane3DCartesian< T, NP >::normal | ( | ) | const [inline, inherited] |
Definition at line 229 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::clip(), lass::prim::Ray3D< T, NormalizingPolicy, ParameterPolicy >::intersect(), lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::majorAxis(), lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::normal(), lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::signedDistance(), and lass::prim::Transformation3D< T >::transform().
const Plane3DCartesian< T, NP >::TParam lass::prim::impl::Plane3DCartesian< T, NP >::d | ( | ) | const [inline, inherited] |
Definition at line 237 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::d_.
Referenced by lass::prim::Transformation3D< T >::transform().
const Plane3DCartesian< T, NP >::TValue lass::prim::impl::Plane3DCartesian< T, NP >::equation | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
Return value of point in equation.
Definition at line 248 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::d_, lass::prim::dot(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_, and lass::prim::Point3D< T >::position().
Referenced by lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::classify(), lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::clip(), lass::prim::Ray3D< T, NormalizingPolicy, ParameterPolicy >::intersect(), lass::prim::LineSegment3D< T, ParameterPolicy >::intersect(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reject(), and lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::signedDistance().
const Plane3DCartesian< T, NP >::TValue lass::prim::impl::Plane3DCartesian< T, NP >::equation | ( | const TPoint & | iPoint, | |
TParam | iRelativeTolerance | |||
) | const [inline, inherited] |
Return value of point in equation.
Definition at line 259 of file plane_3d_cartesian.inl.
References lass::num::almostEqual(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::d_, lass::prim::dot(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_, lass::prim::Point3D< T >::position(), and lass::num::NumTraits< C >::zero.
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< 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 272 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::equation(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::project(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reflect().
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< T, NP >::reject | ( | const TVector & | iVector | ) | const [inline, inherited] |
return the part of iVector that is orthogonal to the plane.
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 285 of file plane_3d_cartesian.inl.
References lass::prim::dot(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
const Plane3DCartesian< T, NP >::TPoint lass::prim::impl::Plane3DCartesian< T, NP >::project | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
project a point orthogonally onto the plane
Definition at line 296 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reject().
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< T, NP >::project | ( | const TVector & | iVector | ) | const [inline, inherited] |
project a vector orthogonally onto the plane
Definition at line 307 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reject().
const Plane3DCartesian< T, NP >::TPoint lass::prim::impl::Plane3DCartesian< T, NP >::reflect | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
reflect a point orthogonally into the plane.
Definition at line 318 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reject().
const Plane3DCartesian< T, NP >::TVector lass::prim::impl::Plane3DCartesian< T, NP >::reflect | ( | const TVector & | iVector | ) | const [inline, inherited] |
reflect a vector orthogonally into the plane
Definition at line 329 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reject().
const Plane3DCartesian< T, NP >::TPoint lass::prim::impl::Plane3DCartesian< T, NP >::point | ( | TParam | iU, | |
TParam | iV | |||
) | const [inline, inherited] |
return point by filling in the parametric equation: P(u, v) = S + u * U + v * V
Definition at line 340 of file plane_3d_cartesian.inl.
const Plane3DCartesian< T, NP >::TPoint lass::prim::impl::Plane3DCartesian< T, NP >::point | ( | const TUV & | iUV | ) | const [inline, inherited] |
return point by filling in the parametric equation: P(u, v) = S + u * U + v * V
Definition at line 351 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionU(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::directionV(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getDirections(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::support(), lass::prim::Point2D< T >::x, and lass::prim::Point2D< T >::y.
const Plane3DCartesian< T, NP >::TUV lass::prim::impl::Plane3DCartesian< T, NP >::uv | ( | const TPoint & | iPoint | ) | const [inline, inherited] |
return UV pair of parameters
Definition at line 365 of file plane_3d_cartesian.inl.
References lass::prim::dot(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::getReciprocals(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalU(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::reciprocalV(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::support().
void lass::prim::impl::Plane3DCartesian< T, NP >::flip | ( | ) | [inline, inherited] |
Definition at line 377 of file plane_3d_cartesian.inl.
References lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::d_, and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::flip().
const bool lass::prim::impl::Plane3DCartesian< T, NP >::isValid | ( | ) | const [inline, inherited] |
return true if plane is a valid plane (no normal or direction vectors that are zero).
Definition at line 388 of file plane_3d_cartesian.inl.
References lass::prim::Vector3D< T >::isZero(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::normal_.
Referenced by lass::prim::Ray3D< T, NormalizingPolicy, ParameterPolicy >::intersect(), lass::prim::LineSegment3D< T, ParameterPolicy >::intersect(), and lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::Plane3DCartesian().
LineSegment3D< T, PP > reflect | ( | const Plane3D< T, EP, NP > & | plane, | |
const LineSegment3D< T, PP > & | lineSegment | |||
) | [related] |
reflect a linesegment in a plane.
plane | [in] the reflection plane | |
lineSegment | [in] the line segment to be reflected |
Definition at line 114 of file line_segment_3d_plane_3d.h.
References lass::prim::LineSegment3D< T, ParameterPolicy >::head(), lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::reflect(), and lass::prim::LineSegment3D< T, ParameterPolicy >::tail().
Referenced by lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::reflect().
LineSegment3D< T, PP > project | ( | const Plane3D< T, EP, NP > & | plane, | |
const LineSegment3D< T, PP > & | lineSegment | |||
) | [related] |
project a linesegment on a plane.
plane | [in] the projection plane | |
lineSegment | [in] the line segment to be projected |
Definition at line 129 of file line_segment_3d_plane_3d.h.
References lass::prim::LineSegment3D< T, ParameterPolicy >::head(), lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::project(), and lass::prim::LineSegment3D< T, ParameterPolicy >::tail().
Referenced by lass::prim::Plane3D< T, EquationPolicy, NormalizingPolicy >::project().
io::XmlOStream & operator<< | ( | io::XmlOStream & | ioOStream, | |
const Plane3D< T, Cartesian > & | iPlane | |||
) | [related] |
io::XmlOStream & operator<< | ( | io::XmlOStream & | ioOStream, | |
const Plane3D< T, Parametric > & | iPlane | |||
) | [related] |
io::XmlOStream & operator<< | ( | io::XmlOStream & | ioOStream, | |
const Plane3D< T, Combined > & | iPlane | |||
) | [related] |
SimplePolygon3D< T, EP2, NP2 > clip | ( | const Plane3D< T, EP1, NP1 > & | iPlane, | |
const SimplePolygon3D< T, EP2, NP2 > & | iPolygon | |||
) | [related] |
Clip a polygon to a plane.
iPlane | [in] the plane to clip to | |
iPolygon | [in] the polygon to be clipped |
Definition at line 613 of file simple_polygon_3d.inl.
References lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::add(), lass::prim::impl::Plane3DCartesian< T, NormalizingPolicy >::equation(), LASS_ASSERT, lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::plane(), and lass::prim::SimplePolygon3D< T, PlaneEquationPolicy, PlaneNormalizingPolicy >::size().
Generated on Mon Nov 10 14:22:14 2008 for Library of Assembled Shared Sources by 1.5.7.1 |