mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-20 16:49:38 +08:00
bug #502: add bool intersects() methods to AlignedBox
This commit is contained in:
parent
2437215221
commit
5f11db695b
@ -185,6 +185,10 @@ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
|
|||||||
inline bool contains(const AlignedBox& b) const
|
inline bool contains(const AlignedBox& b) const
|
||||||
{ return (m_min.array()<=(b.min)().array()).all() && ((b.max)().array()<=m_max.array()).all(); }
|
{ return (m_min.array()<=(b.min)().array()).all() && ((b.max)().array()<=m_max.array()).all(); }
|
||||||
|
|
||||||
|
/** \returns true if the box \a b is intersecting the box \c *this. */
|
||||||
|
inline bool intersects(const AlignedBox& b) const
|
||||||
|
{ return (m_min.array()<=(b.max)().array()).all() && ((b.min)().array()<=m_max.array()).all(); }
|
||||||
|
|
||||||
/** Extends \c *this such that it contains the point \a p and returns a reference to \c *this. */
|
/** Extends \c *this such that it contains the point \a p and returns a reference to \c *this. */
|
||||||
template<typename Derived>
|
template<typename Derived>
|
||||||
inline AlignedBox& extend(const MatrixBase<Derived>& a_p)
|
inline AlignedBox& extend(const MatrixBase<Derived>& a_p)
|
||||||
|
@ -54,6 +54,13 @@ template<typename BoxType> void alignedbox(const BoxType& _box)
|
|||||||
VERIFY(b2.contains(b1));
|
VERIFY(b2.contains(b1));
|
||||||
VERIFY_IS_APPROX(b2.clamp(b0), b0);
|
VERIFY_IS_APPROX(b2.clamp(b0), b0);
|
||||||
|
|
||||||
|
// intersection
|
||||||
|
BoxType box1(VectorType::Random(dim));
|
||||||
|
box1.extend(VectorType::Random(dim));
|
||||||
|
BoxType box2(VectorType::Random(dim));
|
||||||
|
box2.extend(VectorType::Random(dim));
|
||||||
|
|
||||||
|
VERIFY(box1.intersects(box2) == !box1.intersection(box2).isEmpty());
|
||||||
|
|
||||||
// alignment -- make sure there is no memory alignment assertion
|
// alignment -- make sure there is no memory alignment assertion
|
||||||
BoxType *bp0 = new BoxType(dim);
|
BoxType *bp0 = new BoxType(dim);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user