compbio
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Eigen::Hyperplane< _Scalar, _AmbientDim, _Options > Class Template Reference

More...

#include <Hyperplane.h>

Public Types

enum  { AmbientDimAtCompileTime = _AmbientDim, Options = _Options }
 
typedef _Scalar Scalar
 
typedef NumTraits< Scalar >::Real RealScalar
 
typedef Eigen::Index Index
 
typedef Matrix< Scalar, AmbientDimAtCompileTime, 1 > VectorType
 
typedef Matrix< Scalar, Index(AmbientDimAtCompileTime)==Dynamic ? Dynamic :Index(AmbientDimAtCompileTime)+1, 1, Options > Coefficients
 
typedef Block< Coefficients, AmbientDimAtCompileTime, 1 > NormalReturnType
 
typedef const Block< const Coefficients, AmbientDimAtCompileTime, 1 > ConstNormalReturnType
 

Public Member Functions

EIGEN_DEVICE_FUNC Hyperplane ()
 Default constructor without initialization.
 
template<int OtherOptions>
EIGEN_DEVICE_FUNC Hyperplane (const Hyperplane< Scalar, AmbientDimAtCompileTime, OtherOptions > &other)
 
EIGEN_DEVICE_FUNC Hyperplane (Index _dim)
 Constructs a dynamic-size hyperplane with _dim the dimension of the ambient space.
 
EIGEN_DEVICE_FUNC Hyperplane (const VectorType &n, const VectorType &e)
 Construct a plane from its normal n and a point e onto the plane. More...
 
EIGEN_DEVICE_FUNC Hyperplane (const VectorType &n, const Scalar &d)
 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 \). More...
 
EIGEN_DEVICE_FUNC Hyperplane (const ParametrizedLine< Scalar, AmbientDimAtCompileTime > &parametrized)
 Constructs a hyperplane passing through the parametrized line parametrized. More...
 
EIGEN_DEVICE_FUNC Index dim () const
 
EIGEN_DEVICE_FUNC void normalize (void)
 normalizes *this
 
EIGEN_DEVICE_FUNC Scalar signedDistance (const VectorType &p) const
 
EIGEN_DEVICE_FUNC Scalar absDistance (const VectorType &p) const
 
EIGEN_DEVICE_FUNC VectorType projection (const VectorType &p) const
 
EIGEN_DEVICE_FUNC ConstNormalReturnType normal () const
 
EIGEN_DEVICE_FUNC NormalReturnType normal ()
 
EIGEN_DEVICE_FUNC const Scalar & offset () const
 
EIGEN_DEVICE_FUNC Scalar & offset ()
 
EIGEN_DEVICE_FUNC const Coefficientscoeffs () const
 
EIGEN_DEVICE_FUNC Coefficientscoeffs ()
 
EIGEN_DEVICE_FUNC VectorType intersection (const Hyperplane &other) const
 
template<typename XprType >
EIGEN_DEVICE_FUNC Hyperplanetransform (const MatrixBase< XprType > &mat, TransformTraits traits=Affine)
 Applies the transformation matrix mat to *this and returns a reference to *this. More...
 
template<int TrOptions>
EIGEN_DEVICE_FUNC Hyperplanetransform (const Transform< Scalar, AmbientDimAtCompileTime, Affine, TrOptions > &t, TransformTraits traits=Affine)
 Applies the transformation t to *this and returns a reference to *this. More...
 
template<typename NewScalarType >
EIGEN_DEVICE_FUNC internal::cast_return_type< Hyperplane, Hyperplane< NewScalarType, AmbientDimAtCompileTime, Options > >::type cast () const
 
template<typename OtherScalarType , int OtherOptions>
EIGEN_DEVICE_FUNC Hyperplane (const Hyperplane< OtherScalarType, AmbientDimAtCompileTime, OtherOptions > &other)
 Copy constructor with scalar type conversion.
 
template<int OtherOptions>
EIGEN_DEVICE_FUNC bool isApprox (const Hyperplane< Scalar, AmbientDimAtCompileTime, OtherOptions > &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
 

Static Public Member Functions

static EIGEN_DEVICE_FUNC Hyperplane Through (const VectorType &p0, const VectorType &p1)
 Constructs a hyperplane passing through the two points. More...
 
static EIGEN_DEVICE_FUNC Hyperplane Through (const VectorType &p0, const VectorType &p1, const VectorType &p2)
 Constructs a hyperplane passing through the three points. More...
 

Protected Attributes

Coefficients m_coeffs
 

Detailed Description

template<typename _Scalar, int _AmbientDim, int _Options>
class Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >

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.

Template Parameters
_Scalarthe scalar type, i.e., the type of the coefficients
_AmbientDimthe 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.

Member Typedef Documentation

§ Index

template<typename _Scalar, int _AmbientDim, int _Options>
typedef Eigen::Index Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::Index
Deprecated:
since Eigen 3.3

Constructor & Destructor Documentation

§ Hyperplane() [1/3]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::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.

§ Hyperplane() [2/3]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::Hyperplane ( const VectorType n,
const 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.

§ Hyperplane() [3/3]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::Hyperplane ( const ParametrizedLine< Scalar, AmbientDimAtCompileTime > &  parametrized)
inlineexplicit

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.

Member Function Documentation

§ absDistance()

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

§ cast()

template<typename _Scalar, int _AmbientDim, int _Options>
template<typename NewScalarType >
EIGEN_DEVICE_FUNC internal::cast_return_type<Hyperplane, Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::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.

§ coeffs() [1/2]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC const Coefficients& Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::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 \)

§ coeffs() [2/2]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC Coefficients& Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::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 \)

§ dim()

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC Index Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::dim ( ) const
inline
Returns
the dimension in which the plane holds

§ intersection()

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC VectorType Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::intersection ( const Hyperplane< _Scalar, _AmbientDim, _Options > &  other) const
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.

§ isApprox()

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

§ normal() [1/2]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC ConstNormalReturnType Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::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.

§ normal() [2/2]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC NormalReturnType Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::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.

§ offset() [1/2]

template<typename _Scalar, int _AmbientDim, int _Options>
EIGEN_DEVICE_FUNC const Scalar& Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::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.

§ offset() [2/2]

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

§ projection()

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

§ signedDistance()

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

§ Through() [1/2]

template<typename _Scalar, int _AmbientDim, int _Options>
static EIGEN_DEVICE_FUNC Hyperplane Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::Through ( const VectorType p0,
const VectorType p1 
)
inlinestatic

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.

§ Through() [2/2]

template<typename _Scalar, int _AmbientDim, int _Options>
static EIGEN_DEVICE_FUNC Hyperplane Eigen::Hyperplane< _Scalar, _AmbientDim, _Options >::Through ( const VectorType p0,
const VectorType p1,
const VectorType p2 
)
inlinestatic

Constructs a hyperplane passing through the three points.

The dimension of the ambient space is required to be exactly 3.

§ transform() [1/2]

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

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

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

§ transform() [2/2]

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

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

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

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