CrossFramework Library

XBase/Vector2.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_VECTOR2_HPP)
00007 #else
00008 #define XBASE_INCLUDED_VECTOR2_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <XBase/BuiltInTypes.hpp>
00012 #include <XBase/ShortString.hpp>
00013 
00014 //------------------------------------------------------------
00015 namespace XBase {
00016     struct Vector3POD;
00017     struct Vector4POD;
00018 }
00019 
00020 //------------------------------------------------------------
00021 namespace XBase {
00023 
00024 
00028     struct Vector2POD
00029     {
00030         //============================================================
00032 
00033         static const Vector2POD Zero();     
00034         static const Vector2POD One();      
00035         static const Vector2POD Min();      
00036         static const Vector2POD Max();      
00037         static const Vector2POD UnitX();    
00038         static const Vector2POD UnitY();    
00039         static const Vector2POD NegUnitX(); 
00040         static const Vector2POD NegUnitY(); 
00041 
00042 
00043         //============================================================
00045 
00046         f32 x; 
00047         f32 y; 
00048 
00049         
00050         //============================================================
00052 
00053         const Vector2POD toX0()const;
00054         const Vector2POD to0Y()const;
00055         const Vector2POD toXX()const;
00056         const Vector2POD toYX()const;
00057         const Vector2POD toYY()const;
00058         const Vector3POD toXY0()const;
00059         const Vector3POD toXXX()const;
00060         const Vector3POD toYYY()const;
00061         const Vector4POD toXY00()const;
00062         const Vector4POD toXXXX()const;
00063         const Vector4POD toYYYY()const;
00065 
00066         //============================================================
00068 
00069         bool equals( const Vector2POD& )const;       
00070         bool equalsStrict( const Vector2POD& )const; 
00071 
00072 
00073         //============================================================
00075 
00076         const Vector2POD add( f32 )const; 
00077         const Vector2POD sub( f32 )const; 
00078         const Vector2POD mul( f32 )const; 
00079         const Vector2POD div( f32 )const; 
00080         const Vector2POD add( const Vector2POD& )const; 
00081         const Vector2POD sub( const Vector2POD& )const; 
00082         const Vector2POD mul( const Vector2POD& )const; 
00083         const Vector2POD div( const Vector2POD& )const; 
00084         void addAssign( f32 ); 
00085         void subAssign( f32 ); 
00086         void mulAssign( f32 ); 
00087         void divAssign( f32 ); 
00088         void addAssign( const Vector2POD& ); 
00089         void subAssign( const Vector2POD& ); 
00090         void mulAssign( const Vector2POD& ); 
00091         void divAssign( const Vector2POD& ); 
00092 
00093         
00094         //============================================================
00096 
00097         const Vector2POD operator+( f32 )const; 
00098         const Vector2POD operator-( f32 )const; 
00099         const Vector2POD operator*( f32 )const; 
00100         const Vector2POD operator/( f32 )const; 
00101         const Vector2POD operator+( const Vector2POD& )const; 
00102         const Vector2POD operator-( const Vector2POD& )const; 
00103         const Vector2POD operator*( const Vector2POD& )const; 
00104         const Vector2POD operator/( const Vector2POD& )const; 
00105         const Vector2POD operator-()const; 
00106         Vector2POD& operator+=( f32 ); 
00107         Vector2POD& operator-=( f32 ); 
00108         Vector2POD& operator*=( f32 ); 
00109         Vector2POD& operator/=( f32 ); 
00110         Vector2POD& operator+=( const Vector2POD& ); 
00111         Vector2POD& operator-=( const Vector2POD& ); 
00112         Vector2POD& operator*=( const Vector2POD& ); 
00113         Vector2POD& operator/=( const Vector2POD& ); 
00114 
00115         
00116         //============================================================
00118 
00119         const Vector2POD min( const Vector2POD& )const; 
00120         const Vector2POD max( const Vector2POD& )const; 
00121 
00122         
00123         //============================================================
00125 
00126         const Vector2POD clamp( const Vector2POD& aMin , const Vector2POD& aMax )const; 
00127         const Vector2POD clampPositive()const;  
00128         const Vector2POD clampNegative()const; 
00129 
00130 
00131         //============================================================
00133 
00134         const Vector2POD abs()const; 
00135         const Vector2POD neg()const; 
00136 
00137 
00138         //============================================================
00140 
00141         f32  squareLength()const;                
00142         f32  length()const;                      
00143         f32  distance( const Vector2POD& )const; 
00144         bool isZero()const;                      
00145         bool isZeroStrict()const;                
00146         bool isUnit()const;                      
00147         const Vector2POD unit()const;            
00148         void unitAssign();                       
00149 
00150 
00151         //============================================================
00153 
00154         f32 dot( const Vector2POD& )const;     
00155         f32 cross( const Vector2POD& )const;   
00156 
00157 
00158         //============================================================
00160 
00161 
00162         const ShortString toShortString()const;
00164     };
00165 
00167     class Vector2 : public Vector2POD
00168     {
00169     public:
00170         //============================================================
00172 
00173         Vector2(); 
00174         Vector2( const Vector2POD& aXY ); 
00175         Vector2( f32 aX , f32 aY ); 
00176 
00177     };
00178 
00180     typedef Vector2POD Vector2fPOD;
00181     
00183     typedef Vector2 Vector2f;
00185 }
00186 //------------------------------------------------------------
00187 #endif
00188 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義