BALL::TSimpleBox3< T > Class Template Reference
[Box]

#include <BALL/MATHS/simpleBox3.h>

List of all members.


Public Member Functions

Constructors and Destructors
 TSimpleBox3 ()
 TSimpleBox3 (const TSimpleBox3 &box)
 TSimpleBox3 (const TVector3< T > &a, const TVector3< T > &b)
 TSimpleBox3 (const T &ax, const T &ay, const T &az, const T &bx, const T &by, const T &bz)
virtual ~TSimpleBox3 ()
virtual void clear ()
Assignment
void set (const TSimpleBox3 &box)
void set (const TVector3< T > &lower, const TVector3< T > &upper)
void set (const T &ax, const T &ay, const T &az, const T &bx, const T &by, const T &bz)
const TSimpleBox3operator= (const TSimpleBox3 &box)
void get (TSimpleBox3 &box) const
void get (TVector3< T > &lower, TVector3< T > &upper) const
void get (T &ax, T &ay, T &az, T &bx, T &by, T &bz) const
void swap (TSimpleBox3 &box)
Accessors
getSurface () const
getVolume () const
getWidth () const
getHeight () const
getDepth () const
void join (const TSimpleBox3 &box)
Predicates
bool operator== (const TSimpleBox3 &box) const
bool operator!= (const TSimpleBox3 &box) const
bool has (const TVector3< T > &point, bool on_surface=false) const
bool isIntersecting (const TSimpleBox3 &box) const
Debugging and Diagnostics
bool isValid () const
void dump (std::ostream &s=std::cout, Size depth=0) const

Public Attributes

Public members
TVector3< T > a
TVector3< T > b

Detailed Description

template<typename T>
class BALL::TSimpleBox3< T >

Generic three-dimensional Box. This class describes a three-dimensional box with edges parallel to the coordinate system. Hence, a box is given by the coordinates of the lower left front corner and ther upper right back corner.\


Constructor & Destructor Documentation

template<typename T >
BALL::TSimpleBox3< T >::TSimpleBox3 (  )  [inline]

Default constructor. This method creates a new TSimpleBox3 object. The three components of the two TVector3 are initialized to { (T)0}.

template<typename T >
BALL::TSimpleBox3< T >::TSimpleBox3 ( const TSimpleBox3< T > &  box  )  [inline]

Copy constructor. Create a new TSimpleBox3 object from another.

Parameters:
box the TSimpleBox3 object to be copied
template<typename T>
BALL::TSimpleBox3< T >::TSimpleBox3 ( const TVector3< T > &  a,
const TVector3< T > &  b 
) [inline]

Detailed constructor. Create a new TSimpleBox3 object from two instances of TVector3.

Parameters:
a assigned to a
b assigned to b
template<typename T>
BALL::TSimpleBox3< T >::TSimpleBox3 ( const T &  ax,
const T &  ay,
const T &  az,
const T &  bx,
const T &  by,
const T &  bz 
) [inline]

Detailed constructor. Create a new TSimpleBox3 object from six variables of type T .

Parameters:
ax assigned to a.x
ay assigned to a.y
az assigned to a.z
bx assigned to b.x
by assigned to b.y
bz assigned to b.z
template<typename T>
virtual BALL::TSimpleBox3< T >::~TSimpleBox3 (  )  [inline, virtual]

Destructor. Destructs the TSimpleBox3 object. As there are no dynamic data structures, nothing happens.


Member Function Documentation

template<typename T >
BALL_INLINE void BALL::TSimpleBox3< T >::clear (  )  [inline, virtual]

Clear method. The values are set to 0.

Reimplemented in BALL::VIEW::SimpleBox.

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.

template<typename T >
void BALL::TSimpleBox3< T >::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const [inline]

Internal state dump. Dump the current internal state of {*this} to the output ostream s with dumping depth depth .

Parameters:
s - output stream where to output the internal state of {*this}
depth - the dumping depth

Reimplemented in BALL::VIEW::SimpleBox.

References BALL::TSimpleBox3< T >::a, BALL::TSimpleBox3< T >::b, BALL_DUMP_DEPTH, BALL_DUMP_HEADER, BALL_DUMP_STREAM_PREFIX, and BALL_DUMP_STREAM_SUFFIX.

template<typename T>
BALL_INLINE void BALL::TSimpleBox3< T >::get ( T &  ax,
T &  ay,
T &  az,
T &  bx,
T &  by,
T &  bz 
) const [inline]

Assign to six variables of type T .

Parameters:
ax is assigned a.x
ay is assigned a.y
az is assigned a.z
bx is assigned b.x
by is assigned b.y
bz is assigned b.z

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.

template<typename T>
BALL_INLINE void BALL::TSimpleBox3< T >::get ( TVector3< T > &  lower,
TVector3< T > &  upper 
) const [inline]

Assign to two variables of type TVector3 .

Parameters:
lower the lower corner of the box
upper the upper corner of the box

References BALL::TSimpleBox3< T >::a, BALL::TSimpleBox3< T >::b, and BALL::TVector3< T >::set().

template<typename T >
BALL_INLINE void BALL::TSimpleBox3< T >::get ( TSimpleBox3< T > &  box  )  const [inline]

Assign to another instance of TSimpleBox3. Assigns the box components to another box.

Parameters:
box the box to be assigned to

References BALL::TSimpleBox3< T >::set().

template<typename T >
BALL_INLINE T BALL::TSimpleBox3< T >::getDepth (  )  const [inline]

Return the depth of the box.

Returns:
T the depth

References BALL::TSimpleBox3< T >::a, BALL::Maths::abs(), and BALL::TSimpleBox3< T >::b.

template<typename T >
BALL_INLINE T BALL::TSimpleBox3< T >::getHeight (  )  const [inline]

Return the height of the box.

Returns:
T the height

References BALL::TSimpleBox3< T >::a, BALL::Maths::abs(), and BALL::TSimpleBox3< T >::b.

template<typename T >
BALL_INLINE T BALL::TSimpleBox3< T >::getSurface (  )  const [inline]

Calculate the surface area.

Returns:
T the surface

References BALL::TSimpleBox3< T >::a, BALL::Maths::abs(), and BALL::TSimpleBox3< T >::b.

template<typename T >
BALL_INLINE T BALL::TSimpleBox3< T >::getVolume (  )  const [inline]

Calculate the volume.

Returns:
T the volume

References BALL::TSimpleBox3< T >::a, BALL::Maths::abs(), and BALL::TSimpleBox3< T >::b.

template<typename T >
BALL_INLINE T BALL::TSimpleBox3< T >::getWidth (  )  const [inline]

Return the width of the box.

Returns:
T the width

References BALL::TSimpleBox3< T >::a, BALL::Maths::abs(), and BALL::TSimpleBox3< T >::b.

template<typename T>
bool BALL::TSimpleBox3< T >::has ( const TVector3< T > &  point,
bool  on_surface = false 
) const [inline]

Test if a given point is a member of the box. Optional it can be testet, if the point lies on the surface.

Parameters:
point the point to be tested
on_surface true to test the surface (default = false)
Returns:
bool, true or false

References BALL::TSimpleBox3< T >::a, BALL::TSimpleBox3< T >::b, BALL::Maths::isEqual(), and BALL::Maths::isLess().

template<typename T >
bool BALL::TSimpleBox3< T >::isIntersecting ( const TSimpleBox3< T > &  box  )  const [inline]

Test if two boxes intersect.

Parameters:
box the box to be tested
Returns:
bool, true if the two boxes are intersecting, false otherwise

References BALL::TSimpleBox3< T >::a, BALL::TSimpleBox3< T >::b, and BALL::Maths::isLess().

template<typename T >
BALL_INLINE bool BALL::TSimpleBox3< T >::isValid (  )  const [inline]

Test whether instance is valid. Always returns true.

Returns:
bool true

Reimplemented in BALL::VIEW::SimpleBox.

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.

template<typename T >
void BALL::TSimpleBox3< T >::join ( const TSimpleBox3< T > &  box  )  [inline]

Join the box with an other. Instance is set to the box containing both, this box and a given box.

Parameters:
box the box to join with

References BALL::TSimpleBox3< T >::a, BALL::TSimpleBox3< T >::b, BALL::Maths::max(), and BALL::Maths::min().

template<typename T >
BALL_INLINE bool BALL::TSimpleBox3< T >::operator!= ( const TSimpleBox3< T > &  box  )  const [inline]

Inequality operator.

Returns:
bool, true if the two boxes differ in at least one component, false otherwise
template<typename T >
BALL_INLINE const TSimpleBox3< T > & BALL::TSimpleBox3< T >::operator= ( const TSimpleBox3< T > &  box  )  [inline]

Assignment operator. Assign the box components from another instance of TSimpleBox3.

Parameters:
box the TSimpleBox3 to assign from
template<typename T >
BALL_INLINE bool BALL::TSimpleBox3< T >::operator== ( const TSimpleBox3< T > &  box  )  const [inline]

Equality operator.

Returns:
bool, true if all box components are equal, false otherwise

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.

template<typename T>
BALL_INLINE void BALL::TSimpleBox3< T >::set ( const T &  ax,
const T &  ay,
const T &  az,
const T &  bx,
const T &  by,
const T &  bz 
) [inline]

Assign from six values of type T .

Parameters:
ax assigned to a.x
ay assigned to a.y
az assigned to a.z
bx assigned to b.x
by assigned to b.y
bz assigned to b.z

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.

template<typename T>
BALL_INLINE void BALL::TSimpleBox3< T >::set ( const TVector3< T > &  lower,
const TVector3< T > &  upper 
) [inline]

Assign from two points.

Parameters:
lower the lower corner of the box
upper the upper corner of the box

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.

template<typename T >
BALL_INLINE void BALL::TSimpleBox3< T >::set ( const TSimpleBox3< T > &  box  )  [inline]

Assign from another instance of TSimpleBox3.

Parameters:
box the TSimpleBox3 object to assign from

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.

Referenced by BALL::TSimpleBox3< T >::get().

template<typename T >
BALL_INLINE void BALL::TSimpleBox3< T >::swap ( TSimpleBox3< T > &  box  )  [inline]

Swap the contents of two instances.

Parameters:
box the box to swap contents with

References BALL::TSimpleBox3< T >::a, and BALL::TSimpleBox3< T >::b.


Member Data Documentation