Hyperplane< _Scalar, _AmbientDim > Class Template Reference
[Geometry_Module]

A hyperplane. More...

#include <Hyperplane.h>

List of all members.

Public Types

enum  { AmbientDimAtCompileTime = _AmbientDim }
typedef Matrix< Scalar, int(AmbientDimAtCompileTime)==Dynamic?Dynamic:int(AmbientDimAtCompileTime)+1, 1 > Coefficients
typedef Block< Coefficients,
AmbientDimAtCompileTime, 1 > 
NormalReturnType
typedef NumTraits< Scalar >::Real RealScalar
typedef _Scalar Scalar
typedef Matrix< Scalar,
AmbientDimAtCompileTime, 1 > 
VectorType

Public Member Functions

Scalar absDistance (const VectorType &p) const
template<typename NewScalarType >
ei_cast_return_type
< Hyperplane, Hyperplane
< NewScalarType,
AmbientDimAtCompileTime >
>::type 
cast () const
Coefficientscoeffs ()
const Coefficientscoeffs () const
int dim () const
template<typename OtherScalarType >
 Hyperplane (const Hyperplane< OtherScalarType, AmbientDimAtCompileTime > &other)
 Hyperplane (const ParametrizedLine< Scalar, AmbientDimAtCompileTime > &parametrized)
 Hyperplane (const VectorType &n, Scalar d)
 Hyperplane (const VectorType &n, const VectorType &e)
 Hyperplane (int _dim)
 Hyperplane ()
VectorType intersection (const Hyperplane &other)
bool isApprox (const Hyperplane &other, typename NumTraits< Scalar >::Real prec=precision< Scalar >()) const
NormalReturnType normal ()
const NormalReturnType normal () const
void normalize (void)
Scalaroffset ()
const Scalaroffset () const
VectorType projection (const VectorType &p) const
Scalar signedDistance (const VectorType &p) const
Hyperplanetransform (const Transform< Scalar, AmbientDimAtCompileTime > &t, TransformTraits traits=Affine)
template<typename XprType >
Hyperplanetransform (const MatrixBase< XprType > &mat, TransformTraits traits=Affine)
 ~Hyperplane ()

Static Public Member Functions

static Hyperplane Through (const VectorType &p0, const VectorType &p1, const VectorType &p2)
static Hyperplane Through (const VectorType &p0, const VectorType &p1)

Protected Attributes

Coefficients m_coeffs

Detailed Description

template<typename _Scalar, int _AmbientDim>
class Hyperplane< _Scalar, _AmbientDim >

A hyperplane.

A hyperplane is an affine subspace of dimension n-1 in a space of dimension n. For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.

Parameters:
_Scalar the scalar type, i.e., the type of the coefficients
_AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic. Notice that the dimension of the hyperplane is _AmbientDim-1.

This class represents an hyperplane as the zero set of the implicit equation $ n \cdot x + d = 0 $ where $ n $ is a unit normal vector of the plane (linear part) and $ d $ is the distance (offset) to the origin.

Definition at line 47 of file Hyperplane.h.


Member Typedef Documentation

template<typename _Scalar, int _AmbientDim>
typedef Matrix<Scalar,int(AmbientDimAtCompileTime)==Dynamic ? Dynamic : int(AmbientDimAtCompileTime)+1,1> Hyperplane< _Scalar, _AmbientDim >::Coefficients

Definition at line 57 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
typedef Block<Coefficients,AmbientDimAtCompileTime,1> Hyperplane< _Scalar, _AmbientDim >::NormalReturnType

Definition at line 58 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
typedef NumTraits<Scalar>::Real Hyperplane< _Scalar, _AmbientDim >::RealScalar

Definition at line 53 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
typedef _Scalar Hyperplane< _Scalar, _AmbientDim >::Scalar

Definition at line 52 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
typedef Matrix<Scalar,AmbientDimAtCompileTime,1> Hyperplane< _Scalar, _AmbientDim >::VectorType

Definition at line 54 of file Hyperplane.h.


Member Enumeration Documentation

template<typename _Scalar, int _AmbientDim>
anonymous enum
Enumerator:
AmbientDimAtCompileTime 

Definition at line 51 of file Hyperplane.h.


Constructor & Destructor Documentation

template<typename _Scalar, int _AmbientDim>
Hyperplane< _Scalar, _AmbientDim >::Hyperplane (  )  [inline, explicit]

Default constructor without initialization

Definition at line 61 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Hyperplane< _Scalar, _AmbientDim >::Hyperplane ( int  _dim  )  [inline, explicit]

Constructs a dynamic-size hyperplane with _dim the dimension of the ambient space

Definition at line 65 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Hyperplane< _Scalar, _AmbientDim >::Hyperplane ( const VectorType n,
const VectorType e 
) [inline]

Construct a plane from its normal n and a point e onto the plane.

Warning:
the vector normal is assumed to be normalized.

Definition at line 70 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Hyperplane< _Scalar, _AmbientDim >::Hyperplane ( const VectorType n,
Scalar  d 
) [inline]

Constructs a plane from its normal n and distance to the origin d such that the algebraic equation of the plane is $ n \cdot x + d = 0 $.

Warning:
the vector normal is assumed to be normalized.

Definition at line 81 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Hyperplane< _Scalar, _AmbientDim >::Hyperplane ( const ParametrizedLine< Scalar, AmbientDimAtCompileTime > &  parametrized  )  [inline, explicit]

Constructs a hyperplane passing through the parametrized line parametrized. If the dimension of the ambient space is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.

Definition at line 116 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Hyperplane< _Scalar, _AmbientDim >::~Hyperplane (  )  [inline]

Definition at line 122 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
template<typename OtherScalarType >
Hyperplane< _Scalar, _AmbientDim >::Hyperplane ( const Hyperplane< OtherScalarType, AmbientDimAtCompileTime > &  other  )  [inline, explicit]

Copy constructor with scalar type conversion

Definition at line 253 of file Hyperplane.h.


Member Function Documentation

template<typename _Scalar, int _AmbientDim>
Scalar Hyperplane< _Scalar, _AmbientDim >::absDistance ( const VectorType p  )  const [inline]
Returns:
the absolute distance between the plane *this and a point p.
See also:
signedDistance()

Definition at line 141 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
template<typename NewScalarType >
ei_cast_return_type<Hyperplane, Hyperplane<NewScalarType,AmbientDimAtCompileTime> >::type Hyperplane< _Scalar, _AmbientDim >::cast (  )  const [inline]
Returns:
*this with scalar type casted to NewScalarType

Note that if NewScalarType is equal to the current scalar type of *this then this function smartly returns a const reference to *this.

Definition at line 245 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Coefficients& Hyperplane< _Scalar, _AmbientDim >::coeffs (  )  [inline]
Returns:
a non-constant reference to the coefficients c_i of the plane equation: $ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 $

Definition at line 174 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
const Coefficients& Hyperplane< _Scalar, _AmbientDim >::coeffs (  )  const [inline]
Returns:
a constant reference to the coefficients c_i of the plane equation: $ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 $

Definition at line 169 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
int Hyperplane< _Scalar, _AmbientDim >::dim (  )  const [inline]
Returns:
the dimension in which the plane holds

Definition at line 125 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
VectorType Hyperplane< _Scalar, _AmbientDim >::intersection ( const Hyperplane< _Scalar, _AmbientDim > &  other  )  [inline]
Returns:
the intersection of *this with other.
Warning:
The ambient space must be a plane, i.e. have dimension 2, so that *this and other are lines.
Note:
If other is approximately parallel to *this, this method will return any point on *this.

Definition at line 182 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
bool Hyperplane< _Scalar, _AmbientDim >::isApprox ( const Hyperplane< _Scalar, _AmbientDim > &  other,
typename NumTraits< Scalar >::Real  prec = precision<Scalar>() 
) const [inline]
Returns:
true if *this is approximately equal to other, within the precision determined by prec.
See also:
MatrixBase::isApprox()

Definition at line 260 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
NormalReturnType Hyperplane< _Scalar, _AmbientDim >::normal (  )  [inline]
Returns:
a non-constant reference to the unit normal vector of the plane, which corresponds to the linear part of the implicit equation.

Definition at line 155 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
const NormalReturnType Hyperplane< _Scalar, _AmbientDim >::normal (  )  const [inline]
Returns:
a constant reference to the unit normal vector of the plane, which corresponds to the linear part of the implicit equation.

Definition at line 150 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
void Hyperplane< _Scalar, _AmbientDim >::normalize ( void   )  [inline]

normalizes *this

Definition at line 128 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Scalar& Hyperplane< _Scalar, _AmbientDim >::offset (  )  [inline]
Returns:
a non-constant reference to the distance to the origin, which is also the constant part of the implicit equation

Definition at line 164 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
const Scalar& Hyperplane< _Scalar, _AmbientDim >::offset (  )  const [inline]
Returns:
the distance to the origin, which is also the "constant term" of the implicit equation
Warning:
the vector normal is assumed to be normalized.

Definition at line 160 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
VectorType Hyperplane< _Scalar, _AmbientDim >::projection ( const VectorType p  )  const [inline]
Returns:
the projection of a point p onto the plane *this.

Definition at line 145 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Scalar Hyperplane< _Scalar, _AmbientDim >::signedDistance ( const VectorType p  )  const [inline]
Returns:
the signed distance between the plane *this and a point p.
See also:
absDistance()

Definition at line 136 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
static Hyperplane Hyperplane< _Scalar, _AmbientDim >::Through ( const VectorType p0,
const VectorType p1,
const VectorType p2 
) [inline, static]

Constructs a hyperplane passing through the three points. The dimension of the ambient space is required to be exactly 3.

Definition at line 102 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
static Hyperplane Hyperplane< _Scalar, _AmbientDim >::Through ( const VectorType p0,
const VectorType p1 
) [inline, static]

Constructs a hyperplane passing through the two points. If the dimension of the ambient space is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.

Definition at line 91 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
Hyperplane& Hyperplane< _Scalar, _AmbientDim >::transform ( const Transform< Scalar, AmbientDimAtCompileTime > &  t,
TransformTraits  traits = Affine 
) [inline]

Applies the transformation t to *this and returns a reference to *this.

Parameters:
t the transformation of dimension Dim
traits specifies whether the transformation t represents an Isometry or a more generic Affine transformation. The default is Affine. Other kind of transformations are not supported.

Definition at line 230 of file Hyperplane.h.

template<typename _Scalar, int _AmbientDim>
template<typename XprType >
Hyperplane& Hyperplane< _Scalar, _AmbientDim >::transform ( const MatrixBase< XprType > &  mat,
TransformTraits  traits = Affine 
) [inline]

Applies the transformation matrix mat to *this and returns a reference to *this.

Parameters:
mat the Dim x Dim transformation matrix
traits specifies whether the matrix mat represents an Isometry or a more generic Affine transformation. The default is Affine.

Definition at line 210 of file Hyperplane.h.


Member Data Documentation

template<typename _Scalar, int _AmbientDim>
Coefficients Hyperplane< _Scalar, _AmbientDim >::m_coeffs [protected]

Definition at line 265 of file Hyperplane.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


vcglib
Author(s): Christian Bersch
autogenerated on Fri Jan 11 09:22:05 2013