List of all members.
Public Member Functions |
| box3f () |
virtual | ~box3f () |
| box3f (const box3f &a_from) |
box3f & | operator= (const box3f &a_from) |
bool | center (vec3f &a_center) const |
bool | set_bounds (const vec3f &a_mn, const vec3f &a_mx) |
bool | set_bounds (float a_mn_x, float a_mn_y, float a_mn_z, float a_mx_x, float a_mx_y, float a_mx_z) |
void | make_empty () |
bool | get_size (float &a_dx, float &a_dy, float &a_dz) const |
bool | is_empty () const |
const vec3f & | mn () const |
const vec3f & | mx () const |
void | extend_by (const vec3f &a_point) |
void | extend_by (float a_x, float a_y, float a_z) |
void | dump (std::ostream &a_out) |
Detailed Description
Definition at line 15 of file box3f.
Constructor & Destructor Documentation
inlib::box3f::box3f |
( |
| ) |
[inline] |
Definition at line 17 of file box3f.
virtual inlib::box3f::~box3f |
( |
| ) |
[inline, virtual] |
Definition at line 20 of file box3f.
inlib::box3f::box3f |
( |
const box3f & |
a_from | ) |
[inline] |
Definition at line 22 of file box3f.
:m_min(a_from.m_min)
,m_max(a_from.m_max)
{}
Member Function Documentation
bool inlib::box3f::center |
( |
vec3f & |
a_center | ) |
const [inline] |
Definition at line 32 of file box3f.
{
if(is_empty()) {
a_center.set_value(0,0,0);
return false;
}
a_center.set_value((m_max[0] + m_min[0]) * 0.5f,
(m_max[1] + m_min[1]) * 0.5f,
(m_max[2] + m_min[2]) * 0.5f);
return true;
}
void inlib::box3f::dump |
( |
std::ostream & |
a_out | ) |
[inline] |
Definition at line 113 of file box3f.
{
float dx,dy,dz;
if(!get_size(dx,dy,dz)) {
a_out << "box is empty." << std::endl;
} else {
a_out << " size " << dx << " " << dy << " " << dz << std::endl;
}
a_out << " min " << m_min[0] << " " << m_min[1] << " " << m_min[2] << std::endl;
a_out << " max " << m_max[0] << " " << m_max[1] << " " << m_max[2] << std::endl;
vec3f c;
center(c);
a_out << " center " << c[0] << " " << c[1] << " " << c[2] << std::endl;
}
void inlib::box3f::extend_by |
( |
const vec3f & |
a_point | ) |
[inline] |
Definition at line 82 of file box3f.
{
if(is_empty()) {
set_bounds(a_point,a_point);
} else {
m_min.set_value(inlib::mn<float>(a_point[0],m_min[0]),
inlib::mn<float>(a_point[1],m_min[1]),
inlib::mn<float>(a_point[2],m_min[2]));
m_max.set_value(inlib::mx<float>(a_point[0],m_max[0]),
inlib::mx<float>(a_point[1],m_max[1]),
inlib::mx<float>(a_point[2],m_max[2]));
}
}
void inlib::box3f::extend_by |
( |
float |
a_x, |
|
|
float |
a_y, |
|
|
float |
a_z |
|
) |
| [inline] |
Definition at line 97 of file box3f.
{
if(is_empty()) {
set_bounds(a_x,a_y,a_z,a_x,a_y,a_z);
} else {
m_min.set_value(inlib::mn<float>(a_x,m_min[0]),
inlib::mn<float>(a_y,m_min[1]),
inlib::mn<float>(a_z,m_min[2]));
m_max.set_value(inlib::mx<float>(a_x,m_max[0]),
inlib::mx<float>(a_y,m_max[1]),
inlib::mx<float>(a_z,m_max[2]));
}
}
bool inlib::box3f::get_size |
( |
float & |
a_dx, |
|
|
float & |
a_dy, |
|
|
float & |
a_dz |
|
) |
| const [inline] |
Definition at line 64 of file box3f.
{
if(is_empty()) {
a_dx = 0;
a_dy = 0;
a_dz = 0;
return false;
}
a_dx = m_max[0] - m_min[0];
a_dy = m_max[1] - m_min[1];
a_dz = m_max[2] - m_min[2];
return true;
}
bool inlib::box3f::is_empty |
( |
| ) |
const [inline] |
Definition at line 76 of file box3f.
{
return m_max[0] < m_min[0];
}
void inlib::box3f::make_empty |
( |
| ) |
[inline] |
Definition at line 60 of file box3f.
{
m_min.set_value(FLT_MAX, FLT_MAX, FLT_MAX);
m_max.set_value(-FLT_MAX, -FLT_MAX, -FLT_MAX);
}
const vec3f& inlib::box3f::mn |
( |
| ) |
const [inline] |
Definition at line 79 of file box3f.
const vec3f& inlib::box3f::mx |
( |
| ) |
const [inline] |
Definition at line 80 of file box3f.
box3f& inlib::box3f::operator= |
( |
const box3f & |
a_from | ) |
[inline] |
Definition at line 26 of file box3f.
{
m_min = a_from.m_min;
m_max = a_from.m_max;
return *this;
}
bool inlib::box3f::set_bounds |
( |
const vec3f & |
a_mn, |
|
|
const vec3f & |
a_mx |
|
) |
| [inline] |
Definition at line 43 of file box3f.
{
if( a_mn[0]>a_mx[0] ||
a_mn[1]>a_mx[1] ||
a_mn[2]>a_mx[2]) return false;
m_min = a_mn;
m_max = a_mx;
return true;
}
bool inlib::box3f::set_bounds |
( |
float |
a_mn_x, |
|
|
float |
a_mn_y, |
|
|
float |
a_mn_z, |
|
|
float |
a_mx_x, |
|
|
float |
a_mx_y, |
|
|
float |
a_mx_z |
|
) |
| [inline] |
Definition at line 51 of file box3f.
{
if( a_mn_x>a_mx_x ||
a_mn_y>a_mx_y ||
a_mn_z>a_mx_z ) return false;
m_min.set_value(a_mn_x,a_mn_y,a_mn_z);
m_max.set_value(a_mx_x,a_mx_y,a_mx_z);
return true;
}
The documentation for this class was generated from the following file:
- /Users/barrand/private/dev/softinex/old/inexlib-1.2/inlib/inlib/box3f