Shapeworks Studio
2.1
Shape analysis software suite
|
A hyperplane. More...
#include <Hyperplane.h>
Public Types | |
enum | { AmbientDimAtCompileTime = _AmbientDim } |
enum | { AmbientDimAtCompileTime = _AmbientDim, Options = _Options } |
typedef _Scalar | Scalar |
typedef NumTraits< Scalar >::Real | RealScalar |
typedef Matrix< Scalar, AmbientDimAtCompileTime, 1 > | VectorType |
typedef Matrix< Scalar, int(AmbientDimAtCompileTime)==Dynamic?Dynamic:int(AmbientDimAtCompileTime)+1, 1 > | Coefficients |
typedef Block< Coefficients, AmbientDimAtCompileTime, 1 > | NormalReturnType |
typedef _Scalar | Scalar |
typedef NumTraits< Scalar >::Real | RealScalar |
typedef DenseIndex | 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 | |
Hyperplane () | |
Hyperplane (int _dim) | |
Hyperplane (const VectorType &n, const VectorType &e) | |
Hyperplane (const VectorType &n, Scalar d) | |
Hyperplane (const ParametrizedLine< Scalar, AmbientDimAtCompileTime > ¶metrized) | |
int | dim () const |
void | normalize (void) |
Scalar | signedDistance (const VectorType &p) const |
Scalar | absDistance (const VectorType &p) const |
VectorType | projection (const VectorType &p) const |
const NormalReturnType | normal () const |
NormalReturnType | normal () |
const Scalar & | offset () const |
Scalar & | offset () |
const Coefficients & | coeffs () const |
Coefficients & | coeffs () |
VectorType | intersection (const Hyperplane &other) |
template<typename XprType > | |
Hyperplane & | transform (const MatrixBase< XprType > &mat, TransformTraits traits=Affine) |
Hyperplane & | transform (const Transform< Scalar, AmbientDimAtCompileTime > &t, TransformTraits traits=Affine) |
template<typename NewScalarType > | |
internal::cast_return_type< Hyperplane, Hyperplane< NewScalarType, AmbientDimAtCompileTime > >::type | cast () const |
template<typename OtherScalarType > | |
Hyperplane (const Hyperplane< OtherScalarType, AmbientDimAtCompileTime > &other) | |
bool | isApprox (const Hyperplane &other, typename NumTraits< Scalar >::Real prec=precision< Scalar >()) const |
Hyperplane () | |
template<int OtherOptions> | |
Hyperplane (const Hyperplane< Scalar, AmbientDimAtCompileTime, OtherOptions > &other) | |
Hyperplane (Index _dim) | |
Hyperplane (const VectorType &n, const VectorType &e) | |
Hyperplane (const VectorType &n, const Scalar &d) | |
Hyperplane (const ParametrizedLine< Scalar, AmbientDimAtCompileTime > ¶metrized) | |
Index | dim () const |
void | normalize (void) |
Scalar | signedDistance (const VectorType &p) const |
Scalar | absDistance (const VectorType &p) const |
VectorType | projection (const VectorType &p) const |
ConstNormalReturnType | normal () const |
NormalReturnType | normal () |
const Scalar & | offset () const |
Scalar & | offset () |
const Coefficients & | coeffs () const |
Coefficients & | coeffs () |
VectorType | intersection (const Hyperplane &other) 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) |
template<typename NewScalarType > | |
internal::cast_return_type< Hyperplane, Hyperplane< NewScalarType, AmbientDimAtCompileTime, Options > >::type | cast () const |
template<typename OtherScalarType , int OtherOptions> | |
Hyperplane (const Hyperplane< OtherScalarType, AmbientDimAtCompileTime, OtherOptions > &other) | |
template<int OtherOptions> | |
bool | isApprox (const Hyperplane< Scalar, AmbientDimAtCompileTime, OtherOptions > &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const |
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) |
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.
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 where is a unit normal vector of the plane (linear part) and is the distance (offset) to the origin.
Definition at line 33 of file Hyperplane.h.
|
inline |
|
inlineexplicit |
Constructs a dynamic-size hyperplane with _dim the dimension of the ambient space
Definition at line 51 of file Hyperplane.h.
|
inline |
Construct a plane from its normal n and a point e onto the plane.
Definition at line 56 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 .
Definition at line 67 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 102 of file Hyperplane.h.
|
inlineexplicit |
Copy constructor with scalar type conversion
Definition at line 239 of file Hyperplane.h.
|
inline |
|
inlineexplicit |
Constructs a dynamic-size hyperplane with _dim the dimension of the ambient space
Definition at line 62 of file Hyperplane.h.
|
inline |
Construct a plane from its normal n and a point e onto the plane.
Definition at line 67 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 .
Definition at line 78 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 113 of file Hyperplane.h.
|
inlineexplicit |
Copy constructor with scalar type conversion
Definition at line 252 of file Hyperplane.h.
|
inline |
*this
and a point p. Definition at line 127 of file Hyperplane.h.
|
inline |
*this
and a point p. Definition at line 138 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 231 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 244 of file Hyperplane.h.
|
inline |
Definition at line 155 of file Hyperplane.h.
|
inline |
Definition at line 160 of file Hyperplane.h.
|
inline |
Definition at line 166 of file Hyperplane.h.
|
inline |
Definition at line 171 of file Hyperplane.h.
|
inline |
Definition at line 111 of file Hyperplane.h.
|
inline |
Definition at line 122 of file Hyperplane.h.
|
inline |
*this
and other are lines.Definition at line 168 of file Hyperplane.h.
|
inline |
*this
and other are lines.Definition at line 179 of file Hyperplane.h.
|
inline |
true
if *this
is approximately equal to other, within the precision determined by prec.Definition at line 246 of file Hyperplane.h.
|
inline |
true
if *this
is approximately equal to other, within the precision determined by prec.Definition at line 260 of file Hyperplane.h.
|
inline |
Definition at line 136 of file Hyperplane.h.
|
inline |
Definition at line 141 of file Hyperplane.h.
|
inline |
Definition at line 147 of file Hyperplane.h.
|
inline |
Definition at line 152 of file Hyperplane.h.
|
inline |
|
inline |
|
inline |
Definition at line 146 of file Hyperplane.h.
|
inline |
Definition at line 150 of file Hyperplane.h.
|
inline |
Definition at line 157 of file Hyperplane.h.
|
inline |
Definition at line 161 of file Hyperplane.h.
|
inline |
*this
. Definition at line 131 of file Hyperplane.h.
|
inline |
*this
. Definition at line 142 of file Hyperplane.h.
|
inline |
*this
and a point p. Definition at line 122 of file Hyperplane.h.
|
inline |
*this
and a point p. Definition at line 133 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 77 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 88 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 88 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 99 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 196 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 208 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 216 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 229 of file Hyperplane.h.