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     struct Vector3iPOD;
00018     struct Vector4iPOD;
00019 }
00020 
00021 //------------------------------------------------------------
00022 namespace XBase {
00024 
00025 
00031     struct Vector2iPOD
00032     {
00033         //============================================================
00035 
00036         static const Vector2iPOD Zero();     
00037         static const Vector2iPOD One();      
00038         static const Vector2iPOD Min();      
00039         static const Vector2iPOD Max();      
00040         static const Vector2iPOD UnitX();    
00041         static const Vector2iPOD UnitY();    
00042         static const Vector2iPOD NegUnitX(); 
00043         static const Vector2iPOD NegUnitY(); 
00044 
00045 
00046         //============================================================
00048 
00049         s32 x; 
00050         s32 y; 
00051 
00052         
00053         //============================================================
00055 
00056         const Vector2iPOD toX0()const;
00057         const Vector2iPOD to0Y()const;
00058         const Vector2iPOD toXX()const;
00059         const Vector2iPOD toYX()const;
00060         const Vector2iPOD toYY()const;
00061         const Vector3iPOD toXY0()const;
00062         const Vector3iPOD toXXX()const;
00063         const Vector3iPOD toYYY()const;
00064         const Vector4iPOD toXY00()const;
00065         const Vector4iPOD toXXXX()const;
00066         const Vector4iPOD toYYYY()const;
00067         const Vector2POD  toXYf()const;
00069 
00070         //============================================================
00072 
00073         bool equals( const Vector2iPOD& )const;       
00074 
00075 
00076         //============================================================
00078 
00079         const Vector2iPOD add( s32 )const; 
00080         const Vector2iPOD sub( s32 )const; 
00081         const Vector2iPOD mul( s32 )const; 
00082         const Vector2iPOD div( s32 )const; 
00083         const Vector2iPOD add( const Vector2iPOD& )const; 
00084         const Vector2iPOD sub( const Vector2iPOD& )const; 
00085         const Vector2iPOD mul( const Vector2iPOD& )const; 
00086         const Vector2iPOD div( const Vector2iPOD& )const; 
00087         void addAssign( s32 ); 
00088         void subAssign( s32 ); 
00089         void mulAssign( s32 ); 
00090         void divAssign( s32 ); 
00091         void addAssign( const Vector2iPOD& ); 
00092         void subAssign( const Vector2iPOD& ); 
00093         void mulAssign( const Vector2iPOD& ); 
00094         void divAssign( const Vector2iPOD& ); 
00095 
00096         
00097         //============================================================
00099 
00100         const Vector2iPOD operator+( s32 )const; 
00101         const Vector2iPOD operator-( s32 )const; 
00102         const Vector2iPOD operator*( s32 )const; 
00103         const Vector2iPOD operator/( s32 )const; 
00104         const Vector2iPOD operator+( const Vector2iPOD& )const; 
00105         const Vector2iPOD operator-( const Vector2iPOD& )const; 
00106         const Vector2iPOD operator*( const Vector2iPOD& )const; 
00107         const Vector2iPOD operator/( const Vector2iPOD& )const; 
00108         const Vector2iPOD operator-()const; 
00109         Vector2iPOD& operator+=( s32 ); 
00110         Vector2iPOD& operator-=( s32 ); 
00111         Vector2iPOD& operator*=( s32 ); 
00112         Vector2iPOD& operator/=( s32 ); 
00113         Vector2iPOD& operator+=( const Vector2iPOD& ); 
00114         Vector2iPOD& operator-=( const Vector2iPOD& ); 
00115         Vector2iPOD& operator*=( const Vector2iPOD& ); 
00116         Vector2iPOD& operator/=( const Vector2iPOD& ); 
00117 
00118         
00119         //============================================================
00121 
00122         const Vector2iPOD min( const Vector2iPOD& )const; 
00123         const Vector2iPOD max( const Vector2iPOD& )const; 
00124 
00125 
00126         //============================================================
00128 
00129         const Vector2iPOD clamp( const Vector2iPOD& aMin , const Vector2iPOD& aMax )const; 
00130         const Vector2iPOD clampPositive()const; 
00131         const Vector2iPOD clampNegative()const; 
00132 
00133 
00134         //============================================================
00136 
00137         const Vector2iPOD abs()const; 
00138         const Vector2iPOD neg()const; 
00139         bool isPositive()const; 
00140 
00141 
00142         //============================================================
00144 
00145         bool isZero()const;                      
00146 
00147         
00148         //============================================================
00150 
00151 
00152         const ShortString toShortString()const;
00154     };
00155 
00157     class Vector2i : public Vector2iPOD
00158     {
00159     public:
00160         //============================================================
00162 
00163         Vector2i(); 
00164         Vector2i( const Vector2iPOD& aXY ); 
00165         Vector2i( s32 aV ); 
00166         Vector2i( s32 aX , s32 aY ); 
00167 
00168     };
00169     
00171     typedef Vector2iPOD Vec2i;
00173 }
00174 //------------------------------------------------------------
00175 #endif
00176 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義