CrossFramework Library

XBase/AABBox2.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_AABBOX2_HPP)
00007 #else
00008 #define XBASE_INCLUDED_AABBOX2_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <XBase/Vector2.hpp>
00012 
00013 //------------------------------------------------------------
00014 namespace XBase {
00015     class AABBox2i;
00016 }
00017 
00018 //------------------------------------------------------------
00019 namespace XBase {
00021 
00022 
00027     class AABBox2
00028     {
00029     public:
00030         //------------------------------------------------------------
00032 
00033         AABBox2(); 
00034         AABBox2( const Vector2POD& aPos ); 
00035         AABBox2( const Vector2POD& aPos1 , const Vector2POD& aPos2 ); 
00036 
00037         
00038         //------------------------------------------------------------
00040 
00041         const Vector2POD min()const;    
00042         const Vector2POD max()const;    
00043         const Vector2POD center()const; 
00044         const Vector2POD posLB()const; 
00045         const Vector2POD posRB()const; 
00046         const Vector2POD posLT()const; 
00047         const Vector2POD posRT()const; 
00048         float left()const;   
00049         float right()const;  
00050         float bottom()const; 
00051         float top()const;    
00052 
00053 
00054         //------------------------------------------------------------
00056 
00057         float width()const;  
00058         float height()const; 
00059         const Vector2POD size()const;     
00060         const Vector2POD halfSize()const; 
00061 
00062 
00063         //------------------------------------------------------------
00065 
00066         const AABBox2 merge( const Vector2POD& aPos )const; 
00067         const AABBox2 merge( const AABBox2& aAABB )const; 
00068         void mergeAssign( const Vector2POD& aPos ); 
00069         void mergeAssign( const AABBox2& aAABB ); 
00070 
00071 
00072         //------------------------------------------------------------
00074 
00075 
00080         bool isIntersects( const AABBox2& aAABB )const;
00081 
00087         bool isContains( const Vector2POD& aPos )const;
00088 
00094         bool isContains( const AABBox2& aAABB )const;
00096         
00097         //------------------------------------------------------------
00099 
00100         const AABBox2 add( const Vector2POD& aTrans )const; 
00101         const AABBox2 sub( const Vector2POD& aTrans )const; 
00102         const AABBox2 add( const AABBox2& aAABB )const; 
00103         const AABBox2 sub( const AABBox2& aAABB )const; 
00104         const AABBox2 mul( f32 aScale )const; 
00105         void addAssign( const Vector2POD& aTrans ); 
00106         void subAssign( const Vector2POD& aTrans ); 
00107         void addAssign( const AABBox2& aAABB ); 
00108         void subAssign( const AABBox2& aAABB ); 
00109         void mulAssign( f32 aScale ); 
00110 
00111         
00112         //------------------------------------------------------------
00114 
00115         const AABBox2 operator+( const Vector2POD& )const; 
00116         const AABBox2 operator-( const Vector2POD& )const; 
00117         const AABBox2 operator+( const AABBox2& )const; 
00118         const AABBox2 operator-( const AABBox2& )const; 
00119         const AABBox2 operator*( f32 )const; 
00120         AABBox2& operator+=( const Vector2POD& ); 
00121         AABBox2& operator-=( const Vector2POD& ); 
00122         AABBox2& operator+=( const AABBox2& ); 
00123         AABBox2& operator-=( const AABBox2& ); 
00124         AABBox2& operator*=( f32 ); 
00125 
00126 
00127         //------------------------------------------------------------
00129 
00130         const AABBox2i toAABB2i()const; 
00131 
00132     private:
00133         Vector2 mMin;
00134         Vector2 mMax;
00135     };
00137 }
00138 //------------------------------------------------------------
00139 #endif
00140 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義