Eigen  3.2.4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
AlignedBox< _Scalar, _AmbientDim > Class Template Reference

Detailed Description

template<typename _Scalar, int _AmbientDim>
class Eigen::AlignedBox< _Scalar, _AmbientDim >

An axis aligned box.

This is defined in the Geometry module.

#include <Eigen/Geometry>
Parameters
_Scalarthe type of the scalar coefficients
_AmbientDimthe dimension of the ambient space, can be a compile time value or Dynamic.

This class represents an axis aligned box as a pair of the minimal and maximal corners.

Public Types

enum  CornerType {
  Min ,
  BottomLeft ,
  BottomLeftFloor
}
 

Public Member Functions

 AlignedBox ()
 
 AlignedBox (Index _dim)
 
template<typename OtherVectorType1 , typename OtherVectorType2 >
 AlignedBox (const OtherVectorType1 &_min, const OtherVectorType2 &_max)
 
template<typename Derived >
 AlignedBox (const MatrixBase< Derived > &a_p)
 
template<typename OtherScalarType >
 AlignedBox (const AlignedBox< OtherScalarType, AmbientDimAtCompileTime > &other)
 
template<typename NewScalarType >
internal::cast_return_type
< AlignedBox, AlignedBox
< NewScalarType,
AmbientDimAtCompileTime >
>::type 
cast () const
 
const CwiseUnaryOp
< internal::scalar_quotient1_op
< Scalar >, const
CwiseBinaryOp
< internal::scalar_sum_op
< Scalar >, const VectorType,
const VectorType > > 
center () const
 
AlignedBoxclamp (const AlignedBox &b)
 
template<typename Derived >
bool contains (const MatrixBase< Derived > &a_p) const
 
bool contains (const AlignedBox &b) const
 
VectorType corner (CornerType corner) const
 
CwiseBinaryOp
< internal::scalar_difference_op
< Scalar >, const VectorType,
const VectorType
diagonal () const
 
Index dim () const
 
template<typename Derived >
AlignedBoxextend (const MatrixBase< Derived > &a_p)
 
AlignedBoxextend (const AlignedBox &b)
 
template<typename Derived >
NonInteger exteriorDistance (const MatrixBase< Derived > &p) const
 
NonInteger exteriorDistance (const AlignedBox &b) const
 
AlignedBox intersection (const AlignedBox &b) const
 
bool isApprox (const AlignedBox &other, const RealScalar &prec=ScalarTraits::dummy_precision()) const
 
bool isEmpty () const
 
bool isNull () const
 
const VectorType &() max () const
 
VectorType &() max ()
 
AlignedBox merged (const AlignedBox &b) const
 
const VectorType &() min () const
 
VectorType &() min ()
 
VectorType sample () const
 
void setEmpty ()
 
void setNull ()
 
const CwiseBinaryOp
< internal::scalar_difference_op
< Scalar >, const VectorType,
const VectorType
sizes () const
 
template<typename Derived >
Scalar squaredExteriorDistance (const MatrixBase< Derived > &a_p) const
 
Scalar squaredExteriorDistance (const AlignedBox &b) const
 
template<typename Derived >
AlignedBoxtranslate (const MatrixBase< Derived > &a_t)
 
Scalar volume () const
 

Member Enumeration Documentation

enum CornerType

Define constants to name the corners of a 1D, 2D or 3D axis aligned bounding box

Enumerator
Min 

1D names

BottomLeft 

Added names for 2D

BottomLeftFloor 

Added names for 3D

Constructor & Destructor Documentation

AlignedBox ( Index  _dim)
inlineexplicit

Constructs a null box with _dim the dimension of the ambient space.

References AlignedBox< _Scalar, _AmbientDim >::setEmpty().

AlignedBox ( const OtherVectorType1 &  _min,
const OtherVectorType2 &  _max 
)
inline

Constructs a box with extremities _min and _max.

AlignedBox ( const MatrixBase< Derived > &  a_p)
inlineexplicit

Constructs a box containing a single point p.

AlignedBox ( const AlignedBox< OtherScalarType, AmbientDimAtCompileTime > &  other)
inlineexplicit

Copy constructor with scalar type conversion

References AlignedBox< _Scalar, _AmbientDim >::max(), and AlignedBox< _Scalar, _AmbientDim >::min().

Member Function Documentation

internal::cast_return_type<AlignedBox, AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type 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.

References AlignedBox< _Scalar, _AmbientDim >::AlignedBox().

const CwiseUnaryOp<internal::scalar_quotient1_op<Scalar>, const CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const VectorType, const VectorType> > center ( ) const
inline
Returns
the center of the box
AlignedBox& clamp ( const AlignedBox< _Scalar, _AmbientDim > &  b)
inline

Clamps *this by the box b and returns a reference to *this.

bool contains ( const MatrixBase< Derived > &  a_p) const
inline
Returns
true if the point p is inside the box *this.
bool contains ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline
Returns
true if the box b is entirely inside the box *this.

References AlignedBox< _Scalar, _AmbientDim >::max(), and AlignedBox< _Scalar, _AmbientDim >::min().

VectorType corner ( CornerType  corner) const
inline
Returns
the vertex of the bounding box at the corner defined by the corner-id corner. It works only for a 1D, 2D or 3D bounding box. For 1D bounding boxes corners are named by 2 enum constants: BottomLeft and BottomRight. For 2D bounding boxes, corners are named by 4 enum constants: BottomLeft, BottomRight, TopLeft, TopRight. For 3D bounding boxes, the following names are added: BottomLeftCeil, BottomRightCeil, TopLeftCeil, TopRightCeil.

References AlignedBox< _Scalar, _AmbientDim >::dim().

CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> diagonal ( ) const
inline
Returns
an expression for the bounding box diagonal vector if the length of the diagonal is needed: diagonal().norm() will provide it.

References AlignedBox< _Scalar, _AmbientDim >::sizes().

Index dim ( ) const
inline
Returns
the dimension in which the box holds

References Eigen::Dynamic.

Referenced by AlignedBox< _Scalar, _AmbientDim >::corner(), and AlignedBox< _Scalar, _AmbientDim >::sample().

AlignedBox& extend ( const MatrixBase< Derived > &  a_p)
inline

Extends *this such that it contains the point p and returns a reference to *this.

AlignedBox& extend ( const AlignedBox< _Scalar, _AmbientDim > &  b)
inline

Extends *this such that it contains the box b and returns a reference to *this.

NonInteger exteriorDistance ( const MatrixBase< Derived > &  p) const
inline
Returns
the distance between the point p and the box *this, and zero if p is inside the box.
See Also
squaredExteriorDistance()

References AlignedBox< _Scalar, _AmbientDim >::squaredExteriorDistance().

NonInteger exteriorDistance ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline
Returns
the distance between the boxes b and *this, and zero if the boxes intersect.
See Also
squaredExteriorDistance()

References AlignedBox< _Scalar, _AmbientDim >::squaredExteriorDistance().

AlignedBox intersection ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline

Returns an AlignedBox that is the intersection of b and *this

References AlignedBox< _Scalar, _AmbientDim >::AlignedBox().

bool isApprox ( const AlignedBox< _Scalar, _AmbientDim > &  other,
const RealScalar &  prec = ScalarTraits::dummy_precision() 
) const
inline
Returns
true if *this is approximately equal to other, within the precision determined by prec.
See Also
MatrixBase::isApprox()
bool isEmpty ( ) const
inline
Returns
true if the box is empty.

Referenced by AlignedBox< _Scalar, _AmbientDim >::isNull().

bool isNull ( ) const
inline
const VectorType&() max ( ) const
inline
VectorType&() max ( )
inline
Returns
a non const reference to the maximal corner
AlignedBox merged ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline

Returns an AlignedBox that is the union of b and *this

References AlignedBox< _Scalar, _AmbientDim >::AlignedBox().

const VectorType&() min ( ) const
inline
VectorType&() min ( )
inline
Returns
a non const reference to the minimal corner
VectorType sample ( ) const
inline
Returns
a random point inside the bounding box sampled with a uniform distribution

References AlignedBox< _Scalar, _AmbientDim >::dim().

void setNull ( )
inline
const CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> sizes ( ) const
inline
Returns
the lengths of the sides of the bounding box. Note that this function does not get the same result for integral or floating scalar types: see

Referenced by AlignedBox< _Scalar, _AmbientDim >::diagonal(), and AlignedBox< _Scalar, _AmbientDim >::volume().

Scalar squaredExteriorDistance ( const MatrixBase< Derived > &  a_p) const
inline
Returns
the squared distance between the point p and the box *this, and zero if p is inside the box.
See Also
exteriorDistance()

Referenced by AlignedBox< _Scalar, _AmbientDim >::exteriorDistance().

Scalar squaredExteriorDistance ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline
Returns
the squared distance between the boxes b and *this, and zero if the boxes intersect.
See Also
exteriorDistance()
AlignedBox& translate ( const MatrixBase< Derived > &  a_t)
inline

Translate *this by the vector t and returns a reference to *this.

Scalar volume ( ) const
inline
Returns
the volume of the bounding box

References AlignedBox< _Scalar, _AmbientDim >::sizes().


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