A hyperplane. More...
Public Types | |
enum | { AmbientDimAtCompileTime , Options } |
typedef Matrix< Scalar, Index(AmbientDimAtCompileTime)==Dynamic ? Dynamic :Index(AmbientDimAtCompileTime)+1, 1, Options > | Coefficients |
typedef const Block< const Coefficients, AmbientDimAtCompileTime, 1 > | ConstNormalReturnType |
typedef Eigen::Index | Index |
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 > | |
internal::cast_return_type< Hyperplane, Hyperplane< NewScalarType, AmbientDimAtCompileTime, Options > >::type | cast () const |
Coefficients & | coeffs () |
const Coefficients & | coeffs () const |
Index | dim () const |
Hyperplane () | |
template<typename OtherScalarType , int OtherOptions> | |
Hyperplane (const Hyperplane< OtherScalarType, AmbientDimAtCompileTime, OtherOptions > &other) | |
template<int OtherOptions> | |
Hyperplane (const Hyperplane< Scalar, AmbientDimAtCompileTime, OtherOptions > &other) | |
Hyperplane (const ParametrizedLine< Scalar, AmbientDimAtCompileTime > ¶metrized) | |
Hyperplane (const VectorType &n, const Scalar &d) | |
Hyperplane (const VectorType &n, const VectorType &e) | |
Hyperplane (Index _dim) | |
VectorType | intersection (const Hyperplane &other) const |
template<int OtherOptions> | |
bool | isApprox (const Hyperplane< Scalar, AmbientDimAtCompileTime, OtherOptions > &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const |
NormalReturnType | normal () |
ConstNormalReturnType | normal () const |
void | normalize (void) |
Scalar & | offset () |
const Scalar & | offset () const |
VectorType | projection (const VectorType &p) const |
Scalar | signedDistance (const VectorType &p) const |
template<typename XprType > | |
Hyperplane & | transform (const MatrixBase< XprType > &mat, TransformTraits traits=Affine) |
template<int TrOptions> | |
Hyperplane & | transform (const Transform< Scalar, AmbientDimAtCompileTime, Affine, TrOptions > &t, TransformTraits traits=Affine) |
~Hyperplane () | |
Static Public Member Functions | |
static Hyperplane | Through (const VectorType &p0, const VectorType &p1) |
static Hyperplane | Through (const VectorType &p0, const VectorType &p1, const VectorType &p2) |
Protected Attributes | |
Coefficients | m_coeffs |
A hyperplane.
This is defined in the Geometry module.
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.
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 36 of file Hyperplane.h.
typedef Matrix<Scalar,Index(AmbientDimAtCompileTime)==Dynamic ? Dynamic : Index(AmbientDimAtCompileTime)+1,1,Options> Eigen::Hyperplane< Scalar_, AmbientDim_, Options_ >::Coefficients |
Definition at line 50 of file Hyperplane.h.
typedef const Block<const Coefficients,AmbientDimAtCompileTime,1> Eigen::Hyperplane< Scalar_, AmbientDim_, Options_ >::ConstNormalReturnType |
Definition at line 52 of file Hyperplane.h.
typedef Eigen::Index Eigen::Hyperplane< Scalar_, AmbientDim_, Options_ >::Index |
Definition at line 46 of file Hyperplane.h.
typedef Block<Coefficients,AmbientDimAtCompileTime,1> Eigen::Hyperplane< Scalar_, AmbientDim_, Options_ >::NormalReturnType |
Definition at line 51 of file Hyperplane.h.
typedef NumTraits<Scalar>::Real Eigen::Hyperplane< Scalar_, AmbientDim_, Options_ >::RealScalar |
Definition at line 45 of file Hyperplane.h.
typedef Scalar_ Eigen::Hyperplane< Scalar_, AmbientDim_, Options_ >::Scalar |
Definition at line 44 of file Hyperplane.h.
typedef Matrix<Scalar,AmbientDimAtCompileTime,1> Eigen::Hyperplane< Scalar_, AmbientDim_, Options_ >::VectorType |
Definition at line 47 of file Hyperplane.h.
anonymous enum |
|
inline |
|
inline |
Definition at line 58 of file Hyperplane.h.
|
inlineexplicit |
Constructs a dynamic-size hyperplane with _dim the dimension of the ambient space
Definition at line 64 of file Hyperplane.h.
|
inline |
Construct a plane from its normal n and a point e onto the plane.
Definition at line 69 of file Hyperplane.h.
|
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 \).
Definition at line 80 of file Hyperplane.h.
|
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.
Definition at line 125 of file Hyperplane.h.
|
inline |
Definition at line 131 of file Hyperplane.h.
|
inlineexplicit |
|
inline |
*this
and a point p. Definition at line 150 of file Hyperplane.h.
|
inline |
*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 258 of file Hyperplane.h.
|
inline |
Definition at line 183 of file Hyperplane.h.
|
inline |
Definition at line 178 of file Hyperplane.h.
|
inline |
Definition at line 134 of file Hyperplane.h.
|
inline |
*this
and other are lines.Definition at line 191 of file Hyperplane.h.
|
inline |
true
if *this
is approximately equal to other, within the precision determined by prec.Definition at line 274 of file Hyperplane.h.
|
inline |
Definition at line 164 of file Hyperplane.h.
|
inline |
Definition at line 159 of file Hyperplane.h.
|
inline |
normalizes *this
Definition at line 137 of file Hyperplane.h.
|
inline |
Definition at line 173 of file Hyperplane.h.
|
inline |
Definition at line 169 of file Hyperplane.h.
|
inline |
*this
. Definition at line 154 of file Hyperplane.h.
|
inline |
*this
and a point p. Definition at line 145 of file Hyperplane.h.
|
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.
Definition at line 90 of file Hyperplane.h.
|
inlinestatic |
Constructs a hyperplane passing through the three points. The dimension of the ambient space is required to be exactly 3.
Definition at line 101 of file Hyperplane.h.
|
inline |
Applies the transformation matrix mat to *this
and returns a reference to *this
.
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 219 of file Hyperplane.h.
|
inline |
Applies the transformation t to *this
and returns a reference to *this
.
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 243 of file Hyperplane.h.
|
protected |
Definition at line 279 of file Hyperplane.h.