library of assembled shared sources

http://lass.cocamware.com

lass::prim::impl::Plane3DCombined< T, NormalizingPolicy > Class Template Reference

implementation of plane 3d with both cartesian and parametric equation, and plus extra reciprocal vectors and board. More...

#include <plane_3d_combined.h>

Collaboration diagram for lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >:

Collaboration graph
[legend]

Public Types

enum  { dimension = TPoint::dimension }
typedef NormalizingPolicy TNormalizingPolicy
typedef Point3D< T > TPoint
typedef TPoint::TVector TVector
typedef Point2D< T > TUV
typedef TPoint::TValue TValue
typedef TPoint::TParam TParam
typedef TPoint::TReference TReference
typedef TPoint::TConstReference TConstReference
typedef TPoint::TNumTraits TNumTraits

Public Member Functions

 Plane3DCombined ()
 initializes to an invalid state.
 Plane3DCombined (const TPoint &iSupport, const TPoint &iPointU, const TPoint &iPointV)
 Construct a plane through three points.
 Plane3DCombined (const TPoint &iSupport, const TVector &iDirectionU, const TVector &iDirectionV)
 construct a plane through a support point and by two direction vectors.
 Plane3DCombined (const TVector &iNormal, const TPoint &iSupport)
 Construct a plane through a support point and by a normal vector.
 Plane3DCombined (const TVector &iNormal, TParam iD)
 Construct a plane by a cartesian equation N.P + d == 0.
const TPointsupport () const
 return support point.
void getDirections (TVector &oDirectionU, TVector &oDirectionV) const
 return U and V direction vectors
const TVectordirectionU () const
 return U direction vector.
const TVectordirectionV () const
 return V direction vector.
void getReciprocals (TVector &oReciprocalU, TVector &oReciprocalV) const
 return reciprocal vectors for U and V direction vectors
const TVectorreciprocalU () const
 return reciprocal for U direction vector.
const TVectorreciprocalV () const
 return reciprocal for V direction vector.
void getCartesian (TVector &oNormal, TReference oD) const
const TVectornormal () 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).

Private Attributes

TPoint support_
TVector directionU_
TVector directionV_
TVector reciprocalU_
TVector reciprocalV_
TVector normal_
TValue d_

Detailed Description

template<typename T, class NormalizingPolicy = Normalized>
class lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >

implementation of plane 3d with both cartesian and parametric equation, and plus extra reciprocal vectors and board.

Author:
Bram de Greve [BdG]

Definition at line 67 of file plane_3d_combined.h.


Member Typedef Documentation

template<typename T , class NormalizingPolicy = Normalized>
typedef NormalizingPolicy lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TNormalizingPolicy

Definition at line 71 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef Point3D<T> lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TPoint

Definition at line 73 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef TPoint::TVector lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TVector

Definition at line 74 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef Point2D<T> lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TUV

Definition at line 75 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef TPoint::TValue lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TValue

Definition at line 77 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef TPoint::TParam lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TParam

Definition at line 78 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef TPoint::TReference lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TReference

Definition at line 79 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef TPoint::TConstReference lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TConstReference

Definition at line 80 of file plane_3d_combined.h.

template<typename T , class NormalizingPolicy = Normalized>
typedef TPoint::TNumTraits lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::TNumTraits

Definition at line 81 of file plane_3d_combined.h.


Member Enumeration Documentation

template<typename T , class NormalizingPolicy = Normalized>
anonymous enum

Enumerator:
dimension 

Definition at line 83 of file plane_3d_combined.h.


Constructor & Destructor Documentation

template<typename T , class NP >
lass::prim::impl::Plane3DCombined< T, NP >::Plane3DCombined (  )  [inline]

initializes to an invalid state.

Definition at line 63 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::isValid(), and LASS_ASSERT.

template<typename T , class NP >
lass::prim::impl::Plane3DCombined< T, NP >::Plane3DCombined ( const TPoint iSupport,
const TPoint iPointU,
const TPoint iPointV 
) [inline]

Construct a plane through three points.

  • support point S is given by the first point iSupport.
  • direction vectors U and V are choosen from iSupport to iPointU and iPointV respectively (U = iPointU - iSupport, V = iPointV - iSupport).
  • normal vector N is given by the cross product N = U x V.
  • value d is choosen so that the support point is indeed a point of the plane.

Definition at line 85 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::d_, lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionU_, lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionV_, lass::prim::impl::Plane3DImplDetail::generateCartesian(), lass::prim::impl::Plane3DImplDetail::generateReciprocal(), lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::normal_, lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalU_, lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalV_, and lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::support_.

template<typename T , class NP >
lass::prim::impl::Plane3DCombined< T, NP >::Plane3DCombined ( const TPoint iSupport,
const TVector iDirectionU,
const TVector iDirectionV 
) [inline]

template<typename T , class NP >
lass::prim::impl::Plane3DCombined< T, NP >::Plane3DCombined ( const TVector iNormal,
const TPoint iSupport 
) [inline]

Construct a plane through a support point and by a normal vector.

  • support point S is given by the point iSupport.
  • normal vector N is given by the vector iNormal.
  • direction vectors U and V are automatically generated so that N == U x V.
  • value d is choosen so that the support point is indeed a point of the plane.

Definition at line 131 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::d_, lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionU_, lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionV_, lass::prim::impl::Plane3DImplDetail::generateDirections(), lass::prim::impl::Plane3DImplDetail::generateReciprocal(), lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::normal_, lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalU_, and lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalV_.

template<typename T , class NP >
lass::prim::impl::Plane3DCombined< T, NP >::Plane3DCombined ( const TVector iNormal,
TParam  iD 
) [inline]


Member Function Documentation

template<typename T , class NP >
const Plane3DCombined< T, NP >::TPoint & lass::prim::impl::Plane3DCombined< T, NP >::support (  )  const [inline]

return support point.

Definition at line 169 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::support_.

template<typename T , class NP >
void lass::prim::impl::Plane3DCombined< T, NP >::getDirections ( TVector oDirectionU,
TVector oDirectionV 
) const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector & lass::prim::impl::Plane3DCombined< T, NP >::directionU (  )  const [inline]

return U direction vector.

Definition at line 190 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionU_.

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector & lass::prim::impl::Plane3DCombined< T, NP >::directionV (  )  const [inline]

return V direction vector.

Definition at line 200 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionV_.

template<typename T , class NP >
void lass::prim::impl::Plane3DCombined< T, NP >::getReciprocals ( TVector oReciprocalU,
TVector oReciprocalV 
) const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector & lass::prim::impl::Plane3DCombined< T, NP >::reciprocalU (  )  const [inline]

return reciprocal for U direction vector.

Definition at line 222 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalU_.

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector & lass::prim::impl::Plane3DCombined< T, NP >::reciprocalV (  )  const [inline]

return reciprocal for V direction vector.

Definition at line 232 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalV_.

template<typename T , class NP >
void lass::prim::impl::Plane3DCombined< T, NP >::getCartesian ( TVector oNormal,
TReference  oD 
) const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector & lass::prim::impl::Plane3DCombined< T, NP >::normal (  )  const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TParam lass::prim::impl::Plane3DCombined< T, NP >::d (  )  const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TValue lass::prim::impl::Plane3DCombined< T, NP >::equation ( const TPoint iPoint  )  const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TValue lass::prim::impl::Plane3DCombined< T, NP >::equation ( const TPoint iPoint,
TParam  iRelativeTolerance 
) const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector lass::prim::impl::Plane3DCombined< T, NP >::reject ( const TPoint iPoint  )  const [inline]

return the vector that, if added to the PROJECTION of iPoint, you get iPoint again.

iPoint == (almost) project(iPoint) + reject(iPoint)

Definition at line 292 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::equation(), and lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::normal_.

Referenced by lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::project(), and lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reflect().

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector lass::prim::impl::Plane3DCombined< T, NP >::reject ( const TVector iVector  )  const [inline]

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 305 of file plane_3d_combined.inl.

References lass::prim::dot(), and lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::normal_.

template<typename T , class NP >
const Plane3DCombined< T, NP >::TPoint lass::prim::impl::Plane3DCombined< T, NP >::project ( const TPoint iPoint  )  const [inline]

project a point orthogonally onto the plane

Definition at line 316 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reject().

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector lass::prim::impl::Plane3DCombined< T, NP >::project ( const TVector iVector  )  const [inline]

project a vector orthogonally onto the plane

Definition at line 327 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reject().

template<typename T , class NP >
const Plane3DCombined< T, NP >::TPoint lass::prim::impl::Plane3DCombined< T, NP >::reflect ( const TPoint iPoint  )  const [inline]

reflect a point orthogonally into the plane.

Definition at line 338 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reject().

template<typename T , class NP >
const Plane3DCombined< T, NP >::TVector lass::prim::impl::Plane3DCombined< T, NP >::reflect ( const TVector iVector  )  const [inline]

reflect a vector orthogonally into the plane

Definition at line 349 of file plane_3d_combined.inl.

References lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reject().

template<typename T , class NP >
const Plane3DCombined< T, NP >::TPoint lass::prim::impl::Plane3DCombined< T, NP >::point ( TParam  iU,
TParam  iV 
) const [inline]

return point by filling in the parametric equation: P(u, v) = S + u * U + v * V

Definition at line 360 of file plane_3d_combined.inl.

template<typename T , class NP >
const Plane3DCombined< T, NP >::TPoint lass::prim::impl::Plane3DCombined< T, NP >::point ( const TUV iUV  )  const [inline]

template<typename T , class NP >
const Plane3DCombined< T, NP >::TUV lass::prim::impl::Plane3DCombined< T, NP >::uv ( const TPoint iPoint  )  const [inline]

template<typename T , class NP >
void lass::prim::impl::Plane3DCombined< T, NP >::flip (  )  [inline]

template<typename T , class NP >
const bool lass::prim::impl::Plane3DCombined< T, NP >::isValid (  )  const [inline]


Field Documentation

template<typename T , class NormalizingPolicy = Normalized>
TPoint lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::support_ [private]

template<typename T , class NormalizingPolicy = Normalized>
TVector lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionU_ [private]

template<typename T , class NormalizingPolicy = Normalized>
TVector lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::directionV_ [private]

template<typename T , class NormalizingPolicy = Normalized>
TVector lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalU_ [private]

template<typename T , class NormalizingPolicy = Normalized>
TVector lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::reciprocalV_ [private]

template<typename T , class NormalizingPolicy = Normalized>
TVector lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::normal_ [private]

template<typename T , class NormalizingPolicy = Normalized>
TValue lass::prim::impl::Plane3DCombined< T, NormalizingPolicy >::d_ [private]


The documentation for this class was generated from the following files:

Generated on Mon Nov 10 14:22:14 2008 for Library of Assembled Shared Sources by doxygen 1.5.7.1
SourceForge.net Logo