$treeview $search $mathjax
Eigen  3.2.5
$projectbrief
$projectbrief
$searchbox

AlignedBox< _Scalar, _AmbientDim > Class Template Reference
[Geometry module]

An axis aligned box. More...

List of all members.

Public Types

enum  CornerType {
  Min,
  Max,
  BottomLeft,
  BottomRight,
  TopLeft,
  TopRight,
  BottomLeftFloor,
  BottomRightFloor,
  TopLeftFloor,
  TopRightFloor,
  BottomLeftCeil,
  BottomRightCeil,
  TopLeftCeil
}



Public Member Functions

template<typename OtherScalarType >
 AlignedBox (const AlignedBox< OtherScalarType, AmbientDimAtCompileTime > &other)
template<typename Derived >
 AlignedBox (const MatrixBase< Derived > &p)
template<typename OtherVectorType1 , typename OtherVectorType2 >
 AlignedBox (const OtherVectorType1 &_min, const OtherVectorType2 &_max)
 AlignedBox (Index _dim)
 AlignedBox ()
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)
bool contains (const AlignedBox &b) const
template<typename Derived >
bool contains (const MatrixBase< Derived > &p) const
VectorType corner (CornerType corner) const
CwiseBinaryOp
< internal::scalar_difference_op
< Scalar >, const VectorType,
const VectorType
diagonal () const
Index dim () const
AlignedBoxextend (const AlignedBox &b)
template<typename Derived >
AlignedBoxextend (const MatrixBase< Derived > &p)
NonInteger exteriorDistance (const AlignedBox &b) const
template<typename Derived >
NonInteger exteriorDistance (const MatrixBase< Derived > &p) const
AlignedBox intersection (const AlignedBox &b) const
bool intersects (const AlignedBox &b) const
bool isApprox (const AlignedBox &other, const RealScalar &prec=ScalarTraits::dummy_precision()) const
bool isEmpty () const
bool isNull () const
VectorType &() max ()
const VectorType &() max () const
AlignedBox merged (const AlignedBox &b) const
VectorType &() min ()
const VectorType &() min () const
VectorType sample () const
void setEmpty ()
void setNull ()
const CwiseBinaryOp
< internal::scalar_difference_op
< Scalar >, const VectorType,
const VectorType
sizes () const
Scalar squaredExteriorDistance (const AlignedBox &b) const
template<typename Derived >
Scalar squaredExteriorDistance (const MatrixBase< Derived > &p) const
template<typename Derived >
AlignedBoxtranslate (const MatrixBase< Derived > &a_t)
Scalar volume () const

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> 
Template Parameters:
_Scalar the type of the scalar coefficients
_AmbientDim the 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

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

Max 

Identifier for 2D corner

BottomLeft 

Identifier for 2D corner

BottomRight 

Identifier for 2D corner

TopLeft 

Identifier for 2D corner

TopRight 

Identifier for 2D corner

BottomLeftFloor 

Identifier for 3D corner

BottomRightFloor 

Identifier for 2D corner

TopLeftFloor 

Identifier for 2D corner

TopRightFloor 

Identifier for 2D corner

BottomLeftCeil 

Identifier for 2D corner

BottomRightCeil 

Identifier for 2D corner

TopLeftCeil 

Identifier for 2D corner


Constructor & Destructor Documentation

AlignedBox ( Index  _dim  )  [inline, explicit]

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.

Warning:
If either component of _min is larger than the same component of _max, the constructed box is empty.
AlignedBox ( const MatrixBase< Derived > &  p  )  [inline, explicit]

Constructs a box containing a single point p.

AlignedBox ( const AlignedBox< OtherScalarType, AmbientDimAtCompileTime > &  other  )  [inline, explicit]

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.

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.

Note:
If the boxes don't intersect, the resulting box is empty.
See also:
intersection(), intersects()
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().

bool contains ( const MatrixBase< Derived > &  p  )  const [inline]
Returns:
true if the point p is inside the box *this.
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]
AlignedBox& 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&)
AlignedBox& 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&)
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(const AlignedBox&), exteriorDistance(const MatrixBase&)

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

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(const MatrixBase&), exteriorDistance(const AlignedBox&)

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

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

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

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

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

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.
See also:
setEmpty

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

bool isNull (  )  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.

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

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

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 setEmpty (  )  [inline]
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 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&)

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

Scalar 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&)

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

Referenced by AlignedBox< _Scalar, _AmbientDim >::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: