CrossFramework Library

XBase/Vector2i.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_VECTOR2I_HPP)
00007 #else
00008 #define XBASE_INCLUDED_VECTOR2I_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <XBase/BuiltInTypes.hpp>
00012 #include <XBase/ShortString.hpp>
00013 
00014 //------------------------------------------------------------
00015 namespace XBase {
00016     struct Vector2POD;
00017 }
00018 
00019 //------------------------------------------------------------
00020 namespace XBase {
00022 
00023 
00027     struct Vector2iPOD
00028     {
00029         //============================================================
00031 
00032         static const Vector2iPOD Zero();     
00033         static const Vector2iPOD One();      
00034         static const Vector2iPOD Min();      
00035         static const Vector2iPOD Max();      
00036         static const Vector2iPOD UnitX();    
00037         static const Vector2iPOD UnitY();    
00038         static const Vector2iPOD NegUnitX(); 
00039         static const Vector2iPOD NegUnitY(); 
00040 
00041 
00042         //============================================================
00044 
00045         s32 x; 
00046         s32 y; 
00047 
00048         
00049         //============================================================
00051 
00052         const Vector2iPOD toX0()const;
00053         const Vector2iPOD to0Y()const;
00054         const Vector2iPOD toXX()const;
00055         const Vector2iPOD toYX()const;
00056         const Vector2iPOD toYY()const;
00057         const Vector2POD  toXYf()const;
00059 
00060         //============================================================
00062 
00063         bool equals( const Vector2iPOD& )const;       
00064 
00065 
00066         //============================================================
00068 
00069         const Vector2iPOD add( s32 )const; 
00070         const Vector2iPOD sub( s32 )const; 
00071         const Vector2iPOD mul( s32 )const; 
00072         const Vector2iPOD div( s32 )const; 
00073         const Vector2iPOD add( const Vector2iPOD& )const; 
00074         const Vector2iPOD sub( const Vector2iPOD& )const; 
00075         const Vector2iPOD mul( const Vector2iPOD& )const; 
00076         const Vector2iPOD div( const Vector2iPOD& )const; 
00077         void addAssign( s32 ); 
00078         void subAssign( s32 ); 
00079         void mulAssign( s32 ); 
00080         void divAssign( s32 ); 
00081         void addAssign( const Vector2iPOD& ); 
00082         void subAssign( const Vector2iPOD& ); 
00083         void mulAssign( const Vector2iPOD& ); 
00084         void divAssign( const Vector2iPOD& ); 
00085 
00086         
00087         //============================================================
00089 
00090         const Vector2iPOD operator+( s32 )const; 
00091         const Vector2iPOD operator-( s32 )const; 
00092         const Vector2iPOD operator*( s32 )const; 
00093         const Vector2iPOD operator/( s32 )const; 
00094         const Vector2iPOD operator+( const Vector2iPOD& )const; 
00095         const Vector2iPOD operator-( const Vector2iPOD& )const; 
00096         const Vector2iPOD operator*( const Vector2iPOD& )const; 
00097         const Vector2iPOD operator/( const Vector2iPOD& )const; 
00098         const Vector2iPOD operator-()const; 
00099         Vector2iPOD& operator+=( s32 ); 
00100         Vector2iPOD& operator-=( s32 ); 
00101         Vector2iPOD& operator*=( s32 ); 
00102         Vector2iPOD& operator/=( s32 ); 
00103         Vector2iPOD& operator+=( const Vector2iPOD& ); 
00104         Vector2iPOD& operator-=( const Vector2iPOD& ); 
00105         Vector2iPOD& operator*=( const Vector2iPOD& ); 
00106         Vector2iPOD& operator/=( const Vector2iPOD& ); 
00107 
00108         
00109         //============================================================
00111 
00112         const Vector2iPOD min( const Vector2iPOD& )const; 
00113         const Vector2iPOD max( const Vector2iPOD& )const; 
00114 
00115 
00116         //============================================================
00118 
00119         const Vector2iPOD clamp( const Vector2iPOD& aMin , const Vector2iPOD& aMax )const; 
00120         const Vector2iPOD clampPositive()const;  
00121         const Vector2iPOD clampNegative()const; 
00122 
00123 
00124         //============================================================
00126 
00127         const Vector2iPOD abs()const; 
00128         const Vector2iPOD neg()const; 
00129         bool isPositive()const; 
00130 
00131 
00132         //============================================================
00134 
00135         bool isZero()const;                      
00136 
00137         
00138         //============================================================
00140 
00141 
00142         const ShortString toShortString()const;
00144     };
00145 
00147     class Vector2i : public Vector2iPOD
00148     {
00149     public:
00150         //============================================================
00152 
00153         Vector2i(); 
00154         Vector2i( const Vector2iPOD& aXY ); 
00155         Vector2i( s32 aX , s32 aY ); 
00156 
00157     };
00159 }
00160 //------------------------------------------------------------
00161 #endif
00162 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義