14#ifndef OSG_BOUNDINGBOX
15#define OSG_BOUNDINGBOX 1
26class BoundingSphereImpl;
141 return 0.25*((
_max-
_min).length2());
158 if(v.x()<
_min.x())
_min.x() = v.x();
159 if(v.x()>
_max.x())
_max.x() = v.x();
161 if(v.y()<
_min.y())
_min.y() = v.y();
162 if(v.y()>
_max.y())
_max.y() = v.y();
164 if(v.z()<
_min.z())
_min.z() = v.z();
165 if(v.z()>
_max.z())
_max.z() = v.z();
187 if (!bb.
valid())
return;
201 template<
typename BST>
204 if (!
sh.valid())
return;
206 if(
sh._center.x()-
sh._radius<
_min.x())
_min.x() =
sh._center.x()-
sh._radius;
207 if(
sh._center.x()+
sh._radius>
_max.x())
_max.x() =
sh._center.x()+
sh._radius;
209 if(
sh._center.y()-
sh._radius<
_min.y())
_min.y() =
sh._center.y()-
sh._radius;
210 if(
sh._center.y()+
sh._radius>
_max.y())
_max.y() =
sh._center.y()+
sh._radius;
212 if(
sh._center.z()-
sh._radius<
_min.z())
_min.z() =
sh._center.z()-
sh._radius;
213 if(
sh._center.z()+
sh._radius>
_max.z())
_max.z() =
sh._center.z()+
sh._radius;
236 (v.x()>=
_min.x() && v.x()<=
_max.x()) &&
237 (v.y()>=
_min.y() && v.y()<=
_max.y()) &&
238 (v.z()>=
_min.z() && v.z()<=
_max.z());
254#ifdef OSG_USE_FLOAT_BOUNDINGBOX
Definition BoundingBox:34
value_type zMax() const
Definition BoundingBox:123
const vec_type center() const
Definition BoundingBox:126
VT::value_type value_type
Definition BoundingBox:37
bool intersects(const BoundingBoxImpl &bb) const
Definition BoundingBox:225
value_type & xMax()
Definition BoundingBox:116
value_type & yMin()
Definition BoundingBox:110
BoundingBoxImpl(const BoundingBoxImpl< BT > &bb)
Definition BoundingBox:55
value_type & xMin()
Definition BoundingBox:107
value_type & zMin()
Definition BoundingBox:113
value_type xMax() const
Definition BoundingBox:117
void expandBy(value_type x, value_type y, value_type z)
Definition BoundingBox:171
BoundingBoxImpl(value_type xmin, value_type ymin, value_type zmin, value_type xmax, value_type ymax, value_type zmax)
Definition BoundingBox:61
vec_type _max
Definition BoundingBox:42
bool contains(const vec_type &v, value_type epsilon) const
Definition BoundingBox:242
void expandBy(const vec_type &v)
Definition BoundingBox:156
bool operator==(const BoundingBoxImpl &rhs) const
Definition BoundingBox:82
value_type & zMax()
Definition BoundingBox:122
value_type xMin() const
Definition BoundingBox:108
void set(value_type xmin, value_type ymin, value_type zmin, value_type xmax, value_type ymax, value_type zmax)
Definition BoundingBox:92
BoundingBoxImpl intersect(const BoundingBoxImpl &bb) const
Definition BoundingBox:218
const vec_type corner(unsigned int pos) const
Definition BoundingBox:149
bool valid() const
Definition BoundingBox:86
vec_type _min
Definition BoundingBox:40
void expandBy(const BoundingBoxImpl &bb)
Definition BoundingBox:185
void expandBy(const BoundingSphereImpl< BST > &sh)
Definition BoundingBox:202
bool operator!=(const BoundingBoxImpl &rhs) const
Definition BoundingBox:83
BoundingBoxImpl()
Definition BoundingBox:45
bool contains(const vec_type &v) const
Definition BoundingBox:233
void set(const vec_type &min, const vec_type &max)
Definition BoundingBox:100
VT vec_type
Definition BoundingBox:36
value_type yMax() const
Definition BoundingBox:120
value_type zMin() const
Definition BoundingBox:114
void init()
Definition BoundingBox:72
value_type radius2() const
Definition BoundingBox:139
value_type & yMax()
Definition BoundingBox:119
value_type radius() const
Definition BoundingBox:132
value_type yMin() const
Definition BoundingBox:111
BoundingBoxImpl(const vec_type &min, const vec_type &max)
Definition BoundingBox:67
Definition BoundingSphere:35
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
BoundingBoxImpl< Vec3d > BoundingBoxd
Definition BoundingBox:252
BoundingBoxd BoundingBox
Definition BoundingBox:257
BoundingBoxImpl< Vec3f > BoundingBoxf
Definition BoundingBox:251
T maximum(T lhs, T rhs)
Definition Math:85
T minimum(T lhs, T rhs)
Definition Math:78