00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _AABB_H
00025 #define _AABB_H
00026
00027 #ifdef WIN32
00028 #include <windows.h>
00029 #endif
00030
00031 #include "vector3d.h"
00032
00033 namespace ngn {
00034 namespace core {
00035
00041 class NGN_API AABB
00042 {
00043 public:
00045 AABB();
00047 AABB( const AABB& other );
00049 AABB( const Vector3df& vmin, const Vector3df& vmax );
00051 virtual ~AABB();
00053 void setMin( const Vector3df& vmin );
00055 void setMax( const Vector3df& vmax );
00057 void setPosition( const Vector3df& pos );
00059 void scale( float factor );
00061 const Vector3df& getMin() const;
00063 const Vector3df& getMax() const;
00065 Vector3df getPosition() const;
00067 Vector3df getMaxLength();
00068
00069 private:
00070
00071 void updateDim( const Vector3df& pos );
00072
00073 Vector3df m_min;
00074 Vector3df m_max;
00075 Vector3df m_pos;
00076 };
00077
00078
00079 }
00080 }
00081 #endif
00082
00083