mf
Media Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
mf::bounding_box Struct Reference

Axis-aligned 3D cuboid bounding box. More...

#include <bounding_box.h>

Public Types

using edge = std::pair< Eigen::Vector3f, Eigen::Vector3f >
 
using face = std::array< Eigen::Vector3f, 4 >
 
using corners_array = std::array< Eigen::Vector3f, 8 >
 
using edges_array = std::array< edge, 12 >
 
using faces_array = std::array< face, 6 >
 

Public Member Functions

 bounding_box ()=default
 
 bounding_box (const bounding_box &)=default
 
 bounding_box (const Eigen::Vector3f &o, const Eigen::Vector3f &e)
 
Eigen::Vector3f center () const
 
Eigen::Vector3f side_lengths () const
 
float side_length (std::ptrdiff_t i=0) const
 
float volume () const
 
void expand_extremity (float ep=0.1)
 
bool contains (const Eigen::Vector3f &) const
 
bool contains (const bounding_box &) const
 
corners_array corners () const
 
edges_array edges () const
 
faces_array faces () const
 
std::string to_string () const
 

Static Public Member Functions

static bounding_box from_string (const std::string &)
 

Public Attributes

Eigen::Vector3f origin
 
Eigen::Vector3f extremity
 

Friends

std::ostream & operator<< (std::ostream &, const bounding_box &)
 

Detailed Description

Axis-aligned 3D cuboid bounding box.

Represented using origin and extremity coordinates. Point is inside iff for every coordinate i, origin[i] <= p[i] < extremity[i].

Member Typedef Documentation

using mf::bounding_box::corners_array = std::array<Eigen::Vector3f, 8>
using mf::bounding_box::edge = std::pair<Eigen::Vector3f, Eigen::Vector3f>
using mf::bounding_box::edges_array = std::array<edge, 12>
using mf::bounding_box::face = std::array<Eigen::Vector3f, 4>
using mf::bounding_box::faces_array = std::array<face, 6>

Constructor & Destructor Documentation

mf::bounding_box::bounding_box ( )
default
mf::bounding_box::bounding_box ( const bounding_box )
default
mf::bounding_box::bounding_box ( const Eigen::Vector3f &  o,
const Eigen::Vector3f &  e 
)

Member Function Documentation

Eigen::Vector3f mf::bounding_box::center ( ) const
bool mf::bounding_box::contains ( const Eigen::Vector3f &  p) const
bool mf::bounding_box::contains ( const bounding_box cub) const
bounding_box::corners_array mf::bounding_box::corners ( ) const
bounding_box::edges_array mf::bounding_box::edges ( ) const
void mf::bounding_box::expand_extremity ( float  ep = 0.1)
bounding_box::faces_array mf::bounding_box::faces ( ) const
bounding_box mf::bounding_box::from_string ( const std::string &  str)
static
float mf::bounding_box::side_length ( std::ptrdiff_t  i = 0) const
Eigen::Vector3f mf::bounding_box::side_lengths ( ) const
std::string mf::bounding_box::to_string ( ) const
float mf::bounding_box::volume ( ) const

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  str,
const bounding_box c 
)
friend

Member Data Documentation

Eigen::Vector3f mf::bounding_box::extremity
Eigen::Vector3f mf::bounding_box::origin

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