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

Public Types

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

 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
 

Static Public Attributes

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

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

transform_t _t {transform_t::Identity()}
 
vector_t _d {vector_t::Zero()}
 

Member Typedef Documentation

◆ float_t

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

◆ rotation_casted

template<class FloatT >
template<class T >
using simox::OrientedBoxBase< FloatT >::rotation_casted = Eigen::Matrix<T, 3, 3>

◆ rotation_t

template<class FloatT >
using simox::OrientedBoxBase< FloatT >::rotation_t = rotation_casted<float_t>

◆ transform_casted

template<class FloatT >
template<class T >
using simox::OrientedBoxBase< FloatT >::transform_casted = Eigen::Matrix<T, 4, 4>

◆ transform_t

template<class FloatT >
using simox::OrientedBoxBase< FloatT >::transform_t = transform_casted<float_t>

◆ vector2_casted

template<class FloatT >
template<class T >
using simox::OrientedBoxBase< FloatT >::vector2_casted = Eigen::Matrix<T, 2, 1>

◆ vector2_t

template<class FloatT >
using simox::OrientedBoxBase< FloatT >::vector2_t = vector2_casted<float_t>

◆ vector_casted

template<class FloatT >
template<class T >
using simox::OrientedBoxBase< FloatT >::vector_casted = Eigen::Matrix<T, 3, 1>

◆ vector_t

template<class FloatT >
using simox::OrientedBoxBase< FloatT >::vector_t = vector_casted<float_t>

Constructor & Destructor Documentation

◆ OrientedBoxBase() [1/4]

template<class FloatT >
simox::OrientedBoxBase< FloatT >::OrientedBoxBase ( const transform_t t,
const vector_t d 
)
inline

◆ OrientedBoxBase() [2/4]

template<class FloatT >
simox::OrientedBoxBase< FloatT >::OrientedBoxBase ( )
default

◆ OrientedBoxBase() [3/4]

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

◆ OrientedBoxBase() [4/4]

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

Member Function Documentation

◆ axis() [1/2]

template<class FloatT >
auto simox::OrientedBoxBase< FloatT >::axis ( int  i) const
inline

◆ axis() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::axis ( int  i) const
inline

◆ axis_x() [1/2]

template<class FloatT >
auto simox::OrientedBoxBase< FloatT >::axis_x ( ) const
inline

◆ axis_x() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::axis_x ( ) const
inline

◆ axis_y() [1/2]

template<class FloatT >
auto simox::OrientedBoxBase< FloatT >::axis_y ( ) const
inline

◆ axis_y() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::axis_y ( ) const
inline

◆ axis_z() [1/2]

template<class FloatT >
auto simox::OrientedBoxBase< FloatT >::axis_z ( ) const
inline

◆ axis_z() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::axis_z ( ) const
inline

◆ center() [1/2]

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::center ( ) const
inline

◆ center() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::center ( ) const
inline

◆ contained_points()

template<class FloatT >
template<class T , class... Other>
std::vector<Eigen::Matrix<T, 3, 1>, Other...> simox::OrientedBoxBase< FloatT >::contained_points ( const std::vector< Eigen::Matrix< T, 3, 1 >, Other... > &  ps)
inline

◆ contains()

template<class FloatT >
bool simox::OrientedBoxBase< FloatT >::contains ( const vector_t p)
inline

◆ contains_by()

template<class FloatT >
bool simox::OrientedBoxBase< FloatT >::contains_by ( const vector_t p,
float_t  thresh = 0 
)
inline

◆ corner() [1/2]

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::corner ( std::uint8_t  c) const
inline

◆ corner() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::corner ( std::uint8_t  c) const
inline

◆ corner_max() [1/2]

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::corner_max ( ) const
inline

◆ corner_max() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::corner_max ( ) const
inline

◆ corner_min() [1/2]

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::corner_min ( ) const
inline

◆ corner_min() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::corner_min ( ) const
inline

◆ dimension() [1/2]

template<class FloatT >
float_t simox::OrientedBoxBase< FloatT >::dimension ( int  i) const
inline

◆ dimension() [2/2]

template<class FloatT >
template<class T >
T simox::OrientedBoxBase< FloatT >::dimension ( int  i) const
inline

◆ dimension_x() [1/2]

template<class FloatT >
float_t simox::OrientedBoxBase< FloatT >::dimension_x ( ) const
inline

◆ dimension_x() [2/2]

template<class FloatT >
template<class T >
T simox::OrientedBoxBase< FloatT >::dimension_x ( ) const
inline

◆ dimension_y() [1/2]

template<class FloatT >
float_t simox::OrientedBoxBase< FloatT >::dimension_y ( ) const
inline

◆ dimension_y() [2/2]

template<class FloatT >
template<class T >
T simox::OrientedBoxBase< FloatT >::dimension_y ( ) const
inline

◆ dimension_z() [1/2]

template<class FloatT >
float_t simox::OrientedBoxBase< FloatT >::dimension_z ( ) const
inline

◆ dimension_z() [2/2]

template<class FloatT >
template<class T >
T simox::OrientedBoxBase< FloatT >::dimension_z ( ) const
inline

◆ dimensions() [1/2]

template<class FloatT >
const vector_t& simox::OrientedBoxBase< FloatT >::dimensions ( ) const
inline

◆ dimensions() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::dimensions ( ) const
inline

◆ extend() [1/2]

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::extend ( int  i) const
inline

◆ extend() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::extend ( int  i) const
inline

◆ from_box_frame() [1/2]

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::from_box_frame ( const vector_t p) const
inline

◆ from_box_frame() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::from_box_frame ( const vector_t p) const
inline

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ rotation() [1/4]

template<class FloatT >
static auto simox::OrientedBoxBase< FloatT >::rotation ( transform_t t)
inlinestaticprotected

◆ rotation() [2/4]

template<class FloatT >
static auto simox::OrientedBoxBase< FloatT >::rotation ( const transform_t t)
inlinestaticprotected

◆ rotation() [3/4]

template<class FloatT >
auto simox::OrientedBoxBase< FloatT >::rotation ( ) const
inline

◆ rotation() [4/4]

template<class FloatT >
template<class T >
rotation_casted<T> simox::OrientedBoxBase< FloatT >::rotation ( ) const
inline

◆ scale() [1/2]

template<class FloatT >
void simox::OrientedBoxBase< FloatT >::scale ( const vector_t factors)
inline

◆ scale() [2/2]

template<class FloatT >
void simox::OrientedBoxBase< FloatT >::scale ( float_t  factor)
inline

◆ scale_centered()

template<class FloatT >
void simox::OrientedBoxBase< FloatT >::scale_centered ( float_t  factor)
inline

◆ to_box_frame() [1/2]

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::to_box_frame ( const vector_t p) const
inline

◆ to_box_frame() [2/2]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::to_box_frame ( const vector_t p) const
inline

◆ transformation() [1/3]

template<class FloatT >
static transform_t simox::OrientedBoxBase< FloatT >::transformation ( const rotation_t rot,
const vector_t trans 
)
inlinestaticprotected

◆ transformation() [2/3]

template<class FloatT >
const transform_t& simox::OrientedBoxBase< FloatT >::transformation ( ) const
inline

◆ transformation() [3/3]

template<class FloatT >
template<class T >
transform_casted<T> simox::OrientedBoxBase< FloatT >::transformation ( ) const
inline

◆ transformation_centered() [1/2]

template<class FloatT >
transform_t simox::OrientedBoxBase< FloatT >::transformation_centered ( ) const
inline

◆ transformation_centered() [2/2]

template<class FloatT >
template<class T >
transform_casted<T> simox::OrientedBoxBase< FloatT >::transformation_centered ( ) const
inline

◆ transformation_identity()

template<class FloatT >
static transform_t simox::OrientedBoxBase< FloatT >::transformation_identity ( )
inlinestaticprotected

◆ translation() [1/4]

template<class FloatT >
static auto simox::OrientedBoxBase< FloatT >::translation ( transform_t t)
inlinestaticprotected

◆ translation() [2/4]

template<class FloatT >
static auto simox::OrientedBoxBase< FloatT >::translation ( const transform_t t)
inlinestaticprotected

◆ translation() [3/4]

template<class FloatT >
auto simox::OrientedBoxBase< FloatT >::translation ( ) const
inline

◆ translation() [4/4]

template<class FloatT >
template<class T >
vector_casted<T> simox::OrientedBoxBase< FloatT >::translation ( ) const
inline

◆ volume()

template<class FloatT >
float_t simox::OrientedBoxBase< FloatT >::volume ( ) const
inline

Field Documentation

◆ _d

template<class FloatT >
vector_t simox::OrientedBoxBase< FloatT >::_d {vector_t::Zero()}
protected

◆ _t

template<class FloatT >
transform_t simox::OrientedBoxBase< FloatT >::_t {transform_t::Identity()}
protected

◆ eps

template<class FloatT >
constexpr float_t simox::OrientedBoxBase< FloatT >::eps = static_cast<float_t>(1e8)
static

◆ pi

template<class FloatT >
constexpr float_t simox::OrientedBoxBase< FloatT >::pi = static_cast<float_t>(M_PI)
static