Simox  2.3.74.0
simox::OrientedBox< FloatT > Class Template Reference
Inheritance diagram for simox::OrientedBox< FloatT >:
simox::OrientedBoxBase< FloatT >

Public Types

template<class T >
using vector2_casted = typename base::template vector2_casted< T >
 
template<class T >
using vector_casted = typename base::template vector_casted< T >
 
template<class T >
using transform_casted = typename base::template transform_casted< T >
 
template<class T >
using rotation_casted = typename base::template rotation_casted< T >
 
using float_t = FloatT
 
using vector2_t = typename base::vector2_t
 
using vector_t = typename base::vector_t
 
using transform_t = typename base::transform_t
 
using rotation_t = typename base::rotation_t
 
- Public Types inherited from simox::OrientedBoxBase< FloatT >
template<class T >
using vector2_casted = Eigen::Matrix< T, 2, 1 >
 
template<class T >
using vector_casted = Eigen::Matrix< T, 3, 1 >
 
template<class T >
using transform_casted = Eigen::Matrix< T, 4, 4 >
 
template<class T >
using rotation_casted = Eigen::Matrix< T, 3, 3 >
 
using float_t = FloatT
 
using vector2_t = vector2_casted< float_t >
 
using vector_t = vector_casted< float_t >
 
using transform_t = transform_casted< float_t >
 
using rotation_t = rotation_casted< float_t >
 

Public Member Functions

 OrientedBox (OrientedBox &&)=default
 
 OrientedBox (const OrientedBox &)=default
 
OrientedBoxoperator= (OrientedBox &&)=default
 
OrientedBoxoperator= (const OrientedBox &)=default
 
 OrientedBox (const vector_t &corner={0, 0, 0}, const vector_t &extend0={1, 0, 0}, const vector_t &extend1={0, 1, 0}, const vector_t &extend2={0, 0, 1})
 
 OrientedBox (const vector_t &center, const rotation_t &orientation, const vector_t &extents)
 
 OrientedBox (const transform_t &center_pose, const vector_t &extents)
 
 OrientedBox (const vector_t &center, const Eigen::Quaternion< FloatT > &ori, const vector_t &extents)
 
 OrientedBox (const base &b)
 
template<class T >
OrientedBox< T > cast () const
 
OrientedBox transformed (const rotation_t &t) const
 
template<class T >
OrientedBox< T > transformed (const rotation_t &t) const
 
OrientedBox transformed (const transform_t &t) const
 
template<class T >
OrientedBox< T > transformed (const transform_t &t) const
 
- Public Member Functions inherited from simox::OrientedBoxBase< FloatT >
 OrientedBoxBase (const transform_t &t, const vector_t &d)
 
 OrientedBoxBase ()=default
 
 OrientedBoxBase (OrientedBoxBase &&)=default
 
 OrientedBoxBase (const OrientedBoxBase &)=default
 
OrientedBoxBaseoperator= (OrientedBoxBase &&)=default
 
OrientedBoxBaseoperator= (const OrientedBoxBase &)=default
 
const vector_tdimensions () const
 
template<class T >
vector_casted< T > dimensions () const
 
float_t dimension (int i) const
 
template<class T >
dimension (int i) const
 
float_t dimension_x () const
 
template<class T >
dimension_x () const
 
float_t dimension_y () const
 
template<class T >
dimension_y () const
 
float_t dimension_z () const
 
template<class T >
dimension_z () const
 
const transform_ttransformation () const
 
template<class T >
transform_casted< T > transformation () const
 
transform_t transformation_centered () const
 
template<class T >
transform_casted< T > transformation_centered () const
 
auto translation () const
 
template<class T >
vector_casted< T > translation () const
 
auto rotation () const
 
template<class T >
rotation_casted< T > rotation () const
 
auto axis (int i) const
 
template<class T >
vector_casted< T > axis (int i) const
 
auto axis_x () const
 
template<class T >
vector_casted< T > axis_x () const
 
auto axis_y () const
 
template<class T >
vector_casted< T > axis_y () const
 
auto axis_z () const
 
template<class T >
vector_casted< T > axis_z () const
 
vector_t extend (int i) const
 
template<class T >
vector_casted< T > extend (int i) const
 
float_t volume () const
 
void scale (const vector_t &factors)
 
void scale (float_t factor)
 
void scale_centered (float_t factor)
 
vector_t from_box_frame (const vector_t &p) const
 
template<class T >
vector_casted< T > from_box_frame (const vector_t &p) const
 
vector_t to_box_frame (const vector_t &p) const
 
template<class T >
vector_casted< T > to_box_frame (const vector_t &p) const
 
bool contains (const vector_t &p)
 
bool contains_by (const vector_t &p, float_t thresh=0)
 
template<class T , class... Other>
std::vector< Eigen::Matrix< T, 3, 1 >, Other... > contained_points (const std::vector< Eigen::Matrix< T, 3, 1 >, Other... > &ps)
 
vector_t center () const
 
template<class T >
vector_casted< T > center () const
 
vector_t corner_min () const
 
template<class T >
vector_casted< T > corner_min () const
 
vector_t corner_max () const
 
template<class T >
vector_casted< T > corner_max () const
 
vector_t corner (std::uint8_t c) const
 
template<class T >
vector_casted< T > corner (std::uint8_t c) const
 

Additional Inherited Members

- Static Public Attributes inherited from simox::OrientedBoxBase< FloatT >
static constexpr float_t eps = static_cast<float_t>(1e8)
 
static constexpr float_t pi = static_cast<float_t>(M_PI)
 
- Static Protected Member Functions inherited from simox::OrientedBoxBase< FloatT >
static auto translation (transform_t &t)
 
static auto translation (const transform_t &t)
 
static auto rotation (transform_t &t)
 
static auto rotation (const transform_t &t)
 
static transform_t transformation_identity ()
 
static transform_t transformation (const rotation_t &rot, const vector_t &trans)
 
- Protected Attributes inherited from simox::OrientedBoxBase< FloatT >
transform_t _t {transform_t::Identity()}
 
vector_t _d {vector_t::Zero()}
 

Member Typedef Documentation

◆ float_t

template<class FloatT>
using simox::OrientedBox< FloatT >::float_t = FloatT

◆ rotation_casted

template<class FloatT>
template<class T >
using simox::OrientedBox< FloatT >::rotation_casted = typename base::template rotation_casted<T>

◆ rotation_t

template<class FloatT>
using simox::OrientedBox< FloatT >::rotation_t = typename base::rotation_t

◆ transform_casted

template<class FloatT>
template<class T >
using simox::OrientedBox< FloatT >::transform_casted = typename base::template transform_casted<T>

◆ transform_t

template<class FloatT>
using simox::OrientedBox< FloatT >::transform_t = typename base::transform_t

◆ vector2_casted

template<class FloatT>
template<class T >
using simox::OrientedBox< FloatT >::vector2_casted = typename base::template vector2_casted<T>

◆ vector2_t

template<class FloatT>
using simox::OrientedBox< FloatT >::vector2_t = typename base::vector2_t

◆ vector_casted

template<class FloatT>
template<class T >
using simox::OrientedBox< FloatT >::vector_casted = typename base::template vector_casted<T>

◆ vector_t

template<class FloatT>
using simox::OrientedBox< FloatT >::vector_t = typename base::vector_t

Constructor & Destructor Documentation

◆ OrientedBox() [1/7]

template<class FloatT>
simox::OrientedBox< FloatT >::OrientedBox ( OrientedBox< FloatT > &&  )
default

◆ OrientedBox() [2/7]

template<class FloatT>
simox::OrientedBox< FloatT >::OrientedBox ( const OrientedBox< FloatT > &  )
default

◆ OrientedBox() [3/7]

template<class FloatT>
simox::OrientedBox< FloatT >::OrientedBox ( const vector_t corner = {0, 0, 0},
const vector_t extend0 = {1, 0, 0},
const vector_t extend1 = {0, 1, 0},
const vector_t extend2 = {0, 0, 1} 
)
inline

◆ OrientedBox() [4/7]

template<class FloatT>
simox::OrientedBox< FloatT >::OrientedBox ( const vector_t center,
const rotation_t orientation,
const vector_t extents 
)
inline

◆ OrientedBox() [5/7]

template<class FloatT>
simox::OrientedBox< FloatT >::OrientedBox ( const transform_t center_pose,
const vector_t extents 
)
inline

◆ OrientedBox() [6/7]

template<class FloatT>
simox::OrientedBox< FloatT >::OrientedBox ( const vector_t center,
const Eigen::Quaternion< FloatT > &  ori,
const vector_t extents 
)
inline

◆ OrientedBox() [7/7]

template<class FloatT>
simox::OrientedBox< FloatT >::OrientedBox ( const base b)
inline

Member Function Documentation

◆ cast()

template<class FloatT>
template<class T >
OrientedBox<T> simox::OrientedBox< FloatT >::cast ( ) const
inline

◆ operator=() [1/2]

template<class FloatT>
OrientedBox& simox::OrientedBox< FloatT >::operator= ( OrientedBox< FloatT > &&  )
default

◆ operator=() [2/2]

template<class FloatT>
OrientedBox& simox::OrientedBox< FloatT >::operator= ( const OrientedBox< FloatT > &  )
default

◆ transformed() [1/4]

template<class FloatT>
OrientedBox simox::OrientedBox< FloatT >::transformed ( const rotation_t t) const
inline

◆ transformed() [2/4]

template<class FloatT>
template<class T >
OrientedBox<T> simox::OrientedBox< FloatT >::transformed ( const rotation_t t) const
inline

◆ transformed() [3/4]

template<class FloatT>
OrientedBox simox::OrientedBox< FloatT >::transformed ( const transform_t t) const
inline

◆ transformed() [4/4]

template<class FloatT>
template<class T >
OrientedBox<T> simox::OrientedBox< FloatT >::transformed ( const transform_t t) const
inline