Library of Assembled Shared Sources
lass::prim::impl::Plane3DParametric< T, NormalizingPolicy > Class Template Reference

implementation of lass::prim::Plane3D with a parametric equation More...

#include <plane_3d_parametric.h>

Inheritance diagram for lass::prim::impl::Plane3DParametric< T, NormalizingPolicy >:

Public Member Functions

 Plane3DParametric ()
 initializes to an invalid state.
 
 Plane3DParametric (const TPoint &iSupport, const TPoint &iPointU, const TPoint &iPointV)
 Construct a plane through three points.
 
 Plane3DParametric (const TPoint &iSupport, const TVector &iDirectionU, const TVector &iDirectionV)
 construct a plane through a support point and by two direction vectors.
 
 Plane3DParametric (const TVector &iNormal, const TPoint &iSupport)
 Construct a plane through a support point and by a normal vector.
 
 Plane3DParametric (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 TVector reciprocalU () const
 return reciprocal for U direction vector.
 
const TVector reciprocalV () const
 return reciprocal for V direction vector.
 
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
 
bool isValid () const
 return true if plane is a valid plane (no direction vector is zero and they're not colinear.
 

Detailed Description

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

implementation of lass::prim::Plane3D with a parametric equation

Author
Bram de Greve [BdG]

This implementation of the plane uses the parametric equation P(u, v) = S + u * U + v * V. with S a support point, U and V two direction vectors, and u and v two parameters.

Warning
currently, the plane will not automatically orthonormalize the direction vectors. There is a normalizing policy, but that's only for normalizing vectors, not for orthogonalizing two direction vectors. IF SOMEONE IS USING THIS PARAMETRIC PLANE CLASS AND RUNS IN SOME TROUBLES ON THIS, PLEASE CONTACT ME SO WE CAN WORK OUT A SOLUTION. Bram de Greve.

Definition at line 72 of file plane_3d_parametric.h.

Constructor & Destructor Documentation

◆ Plane3DParametric() [1/4]

template<typename T, class NP>
lass::prim::impl::Plane3DParametric< T, NP >::Plane3DParametric ( const TPoint & iSupport,
const TPoint & iPointU,
const TPoint & iPointV )

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).

Definition at line 79 of file plane_3d_parametric.inl.

◆ Plane3DParametric() [2/4]

template<typename T, class NP>
lass::prim::impl::Plane3DParametric< T, NP >::Plane3DParametric ( const TPoint & iSupport,
const TVector & iDirectionU,
const TVector & iDirectionV )

construct a plane through a support point and by two direction vectors.

  • support point S is given by the point iSupport.
  • direction vectors U and V are given by iDirectionU and iDirectionV.

Definition at line 97 of file plane_3d_parametric.inl.

◆ Plane3DParametric() [3/4]

template<typename T, class NP>
lass::prim::impl::Plane3DParametric< T, NP >::Plane3DParametric ( const TVector & iNormal,
const TPoint & iSupport )

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

  • support point S is given by the point iSupport.
  • direction vectors U and V are automatically generated so that N == U x V.

Definition at line 115 of file plane_3d_parametric.inl.

◆ Plane3DParametric() [4/4]

template<typename T, class NP>
lass::prim::impl::Plane3DParametric< T, NP >::Plane3DParametric ( const TVector & iNormal,
TParam iD )

Construct a plane by a cartesian equation N.P + d == 0.

  • support point S automatically generated so that N.S + d == 0.
  • direction vectors U and V are automatically generated so that N == U x V.

Definition at line 130 of file plane_3d_parametric.inl.

References lass::prim::impl::Plane3DImplDetail::generateDirections().

Member Function Documentation

◆ reject() [1/2]

template<typename T, class NP>
const Plane3DParametric< T, NP >::TVector lass::prim::impl::Plane3DParametric< T, NP >::reject ( const TPoint & iPoint) const

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

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

Definition at line 283 of file plane_3d_parametric.inl.

Referenced by project(), project(), reflect(), and reflect().

◆ reject() [2/2]

template<typename T, class NP>
const Plane3DParametric< T, NP >::TVector lass::prim::impl::Plane3DParametric< T, NP >::reject ( const TVector & iVector) const

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 299 of file plane_3d_parametric.inl.


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