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

An axis aligned box. More...

#include <ForwardDeclarations.h>

Public Types

enum  { AmbientDimAtCompileTime = _AmbientDim }
 
enum  CornerType {
  Min =0, Max =1, BottomLeft =0, BottomRight =1,
  TopLeft =2, TopRight =3, BottomLeftFloor =0, BottomRightFloor =1,
  TopLeftFloor =2, TopRightFloor =3, BottomLeftCeil =4, BottomRightCeil =5,
  TopLeftCeil =6, TopRightCeil =7
}
 
typedef Eigen::Index Index
 
typedef ScalarTraits::NonInteger NonInteger
 
typedef ScalarTraits::Real RealScalar
 
typedef _Scalar Scalar
 
typedef NumTraits< ScalarScalarTraits
 
typedef Matrix< Scalar, AmbientDimAtCompileTime, 1 > VectorType
 
typedef CwiseBinaryOp< internal::scalar_sum_op< Scalar >, const VectorType, const VectorTypeVectorTypeSum
 

Public Member Functions

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

Protected Attributes

VectorType m_max
 
VectorType m_min
 

Detailed Description

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

An axis aligned box.

Template 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.

Warning
The result of most methods is undefined when applied to an empty box. You can check for empty boxes using isEmpty().
See also
Global aligned box typedefs

Definition at line 272 of file ForwardDeclarations.h.

Member Typedef Documentation

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

Definition at line 37 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
typedef ScalarTraits::NonInteger Eigen::AlignedBox< _Scalar, _AmbientDim >::NonInteger

Definition at line 39 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
typedef ScalarTraits::Real Eigen::AlignedBox< _Scalar, _AmbientDim >::RealScalar

Definition at line 38 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
typedef _Scalar Eigen::AlignedBox< _Scalar, _AmbientDim >::Scalar

Definition at line 35 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
typedef NumTraits<Scalar> Eigen::AlignedBox< _Scalar, _AmbientDim >::ScalarTraits

Definition at line 36 of file AlignedBox.h.

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

Definition at line 40 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
typedef CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const VectorType, const VectorType> Eigen::AlignedBox< _Scalar, _AmbientDim >::VectorTypeSum

Definition at line 41 of file AlignedBox.h.

Member Enumeration Documentation

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

Definition at line 34 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
enum Eigen::AlignedBox::CornerType

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

Enumerator
Min 

1D names

Max 
BottomLeft 

Identifier for 2D corner

BottomRight 
TopLeft 
TopRight 
BottomLeftFloor 

Identifier for 3D corner

BottomRightFloor 
TopLeftFloor 
TopRightFloor 
BottomLeftCeil 
BottomRightCeil 
TopLeftCeil 
TopRightCeil 

Definition at line 44 of file AlignedBox.h.

Constructor & Destructor Documentation

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC Eigen::AlignedBox< _Scalar, _AmbientDim >::AlignedBox ( )
inline

Default constructor initializing a null box.

Definition at line 65 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC Eigen::AlignedBox< _Scalar, _AmbientDim >::AlignedBox ( Index  _dim)
inlineexplicit

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

Definition at line 69 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
template<typename OtherVectorType1 , typename OtherVectorType2 >
EIGEN_DEVICE_FUNC Eigen::AlignedBox< _Scalar, _AmbientDim >::AlignedBox ( const OtherVectorType1 &  _min,
const OtherVectorType2 &  _max 
)
inline

Constructs a box with extremities _min and _max.

Warning
If either component of _min is larger than the same component of _max, the constructed box is empty.

Definition at line 75 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
template<typename Derived >
EIGEN_DEVICE_FUNC Eigen::AlignedBox< _Scalar, _AmbientDim >::AlignedBox ( const MatrixBase< Derived > &  p)
inlineexplicit

Constructs a box containing a single point p.

Definition at line 79 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC Eigen::AlignedBox< _Scalar, _AmbientDim >::~AlignedBox ( )
inline

Definition at line 82 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
template<typename OtherScalarType >
EIGEN_DEVICE_FUNC Eigen::AlignedBox< _Scalar, _AmbientDim >::AlignedBox ( const AlignedBox< OtherScalarType, AmbientDimAtCompileTime > &  other)
inlineexplicit

Copy constructor with scalar type conversion

Definition at line 292 of file AlignedBox.h.

Member Function Documentation

template<typename _Scalar , int _AmbientDim>
template<typename NewScalarType >
EIGEN_DEVICE_FUNC internal::cast_return_type<AlignedBox, AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type Eigen::AlignedBox< _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 284 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC AlignedBox& Eigen::AlignedBox< _Scalar, _AmbientDim >::clamp ( const AlignedBox< _Scalar, _AmbientDim > &  b)
inline

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

Note
If the boxes don't intersect, the resulting box is empty.
See also
intersection(), intersects()

Definition at line 220 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
template<typename Derived >
EIGEN_DEVICE_FUNC bool Eigen::AlignedBox< _Scalar, _AmbientDim >::contains ( const MatrixBase< Derived > &  p) const
inline
Returns
true if the point p is inside the box *this.

Definition at line 182 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC bool Eigen::AlignedBox< _Scalar, _AmbientDim >::contains ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline
Returns
true if the box b is entirely inside the box *this.

Definition at line 189 of file AlignedBox.h.

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

Definition at line 146 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC CwiseBinaryOp< internal::scalar_difference_op<Scalar,Scalar>, const VectorType, const VectorType> Eigen::AlignedBox< _Scalar, _AmbientDim >::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.

Definition at line 134 of file AlignedBox.h.

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

Definition at line 85 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC const Eigen::AlignedBox< _Scalar, _AmbientDim >::EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE ( VectorTypeSum  ,
RealScalar  ,
quotient   
) const
inline
Returns
the center of the box

Definition at line 115 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
template<typename Derived >
EIGEN_DEVICE_FUNC AlignedBox& Eigen::AlignedBox< _Scalar, _AmbientDim >::extend ( const MatrixBase< Derived > &  p)
inline

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

See also
extend(const AlignedBox&)

Definition at line 200 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC AlignedBox& Eigen::AlignedBox< _Scalar, _AmbientDim >::extend ( const AlignedBox< _Scalar, _AmbientDim > &  b)
inline

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

See also
merged, extend(const MatrixBase&)

Definition at line 210 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
template<typename Derived >
EIGEN_DEVICE_FUNC NonInteger Eigen::AlignedBox< _Scalar, _AmbientDim >::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(const MatrixBase&), exteriorDistance(const AlignedBox&)

Definition at line 267 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC NonInteger Eigen::AlignedBox< _Scalar, _AmbientDim >::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(const AlignedBox&), exteriorDistance(const MatrixBase&)

Definition at line 274 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC AlignedBox Eigen::AlignedBox< _Scalar, _AmbientDim >::intersection ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline

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

Note
If the boxes don't intersect, the resulting box is empty.
See also
intersects(), clamp, contains()

Definition at line 230 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC bool Eigen::AlignedBox< _Scalar, _AmbientDim >::intersects ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline
Returns
true if the box b is intersecting the box *this.
See also
intersection, clamp

Definition at line 194 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC bool Eigen::AlignedBox< _Scalar, _AmbientDim >::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()

Definition at line 302 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC bool Eigen::AlignedBox< _Scalar, _AmbientDim >::isEmpty ( ) const
inline
Returns
true if the box is empty.
See also
setEmpty

Definition at line 95 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC bool Eigen::AlignedBox< _Scalar, _AmbientDim >::isNull ( ) const
inline
Deprecated:
use isEmpty()

Definition at line 88 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC const VectorType&() Eigen::AlignedBox< _Scalar, _AmbientDim >::max ( ) const
inline
Returns
the maximal corner

Definition at line 110 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC VectorType&() Eigen::AlignedBox< _Scalar, _AmbientDim >::max ( )
inline
Returns
a non const reference to the maximal corner

Definition at line 112 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC AlignedBox Eigen::AlignedBox< _Scalar, _AmbientDim >::merged ( const AlignedBox< _Scalar, _AmbientDim > &  b) const
inline

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

Note
Merging with an empty box may result in a box bigger than *this.
See also
extend(const AlignedBox&)

Definition at line 236 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC const VectorType&() Eigen::AlignedBox< _Scalar, _AmbientDim >::min ( ) const
inline
Returns
the minimal corner

Definition at line 106 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC VectorType&() Eigen::AlignedBox< _Scalar, _AmbientDim >::min ( )
inline
Returns
a non const reference to the minimal corner

Definition at line 108 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC VectorType Eigen::AlignedBox< _Scalar, _AmbientDim >::sample ( ) const
inline
Returns
a random point inside the bounding box sampled with a uniform distribution

Definition at line 164 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC void Eigen::AlignedBox< _Scalar, _AmbientDim >::setEmpty ( )
inline

Makes *this an empty box.

See also
isEmpty

Definition at line 99 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC void Eigen::AlignedBox< _Scalar, _AmbientDim >::setNull ( )
inline
Deprecated:
use setEmpty()

Definition at line 91 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC const CwiseBinaryOp< internal::scalar_difference_op<Scalar,Scalar>, const VectorType, const VectorType> Eigen::AlignedBox< _Scalar, _AmbientDim >::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

Definition at line 123 of file AlignedBox.h.

template<typename Scalar , int AmbientDim>
template<typename Derived >
EIGEN_DEVICE_FUNC Scalar Eigen::AlignedBox< Scalar, AmbientDim >::squaredExteriorDistance ( const MatrixBase< Derived > &  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(const MatrixBase&), squaredExteriorDistance(const AlignedBox&)

Definition at line 314 of file AlignedBox.h.

template<typename Scalar , int AmbientDim>
EIGEN_DEVICE_FUNC Scalar Eigen::AlignedBox< Scalar, AmbientDim >::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(const AlignedBox&), squaredExteriorDistance(const MatrixBase&)

Definition at line 336 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
template<typename Derived >
EIGEN_DEVICE_FUNC AlignedBox& Eigen::AlignedBox< _Scalar, _AmbientDim >::translate ( const MatrixBase< Derived > &  a_t)
inline

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

Definition at line 241 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
EIGEN_DEVICE_FUNC Scalar Eigen::AlignedBox< _Scalar, _AmbientDim >::volume ( ) const
inline
Returns
the volume of the bounding box

Definition at line 127 of file AlignedBox.h.

Member Data Documentation

template<typename _Scalar , int _AmbientDim>
VectorType Eigen::AlignedBox< _Scalar, _AmbientDim >::m_max
protected

Definition at line 307 of file AlignedBox.h.

template<typename _Scalar , int _AmbientDim>
VectorType Eigen::AlignedBox< _Scalar, _AmbientDim >::m_min
protected

Definition at line 307 of file AlignedBox.h.


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


hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:09:51