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 UnitX();    
00036         static const Vector2POD UnitY();    
00037         static const Vector2POD NegUnitX(); 
00038         static const Vector2POD NegUnitY(); 
00039 
00040 
00041         //============================================================
00043 
00044         f32 x; 
00045         f32 y; 
00046 
00047         
00048         //============================================================
00050 
00051         const Vector2POD toX0()const;
00052         const Vector2POD to0Y()const;
00053         const Vector2POD toXX()const;
00054         const Vector2POD toYX()const;
00055         const Vector2POD toYY()const;
00056         const Vector3POD toXYO()const;
00057         const Vector3POD toXXX()const;
00058         const Vector3POD toYYY()const;
00059         const Vector4POD toXYOO()const;
00060         const Vector4POD toXXXX()const;
00061         const Vector4POD toYYYY()const;
00063 
00064         //============================================================
00066 
00067         bool equals( const Vector2POD& )const;       
00068         bool equalsStrict( const Vector2POD& )const; 
00069 
00070 
00071         //============================================================
00073 
00074         const Vector2POD add( f32 )const; 
00075         const Vector2POD sub( f32 )const; 
00076         const Vector2POD mul( f32 )const; 
00077         const Vector2POD div( f32 )const; 
00078         const Vector2POD add( const Vector2POD& )const; 
00079         const Vector2POD sub( const Vector2POD& )const; 
00080         const Vector2POD mul( const Vector2POD& )const; 
00081         const Vector2POD div( const Vector2POD& )const; 
00082         const Vector2POD neg()const; 
00083         void addAssign( f32 ); 
00084         void subAssign( f32 ); 
00085         void mulAssign( f32 ); 
00086         void divAssign( f32 ); 
00087         void addAssign( const Vector2POD& ); 
00088         void subAssign( const Vector2POD& ); 
00089         void mulAssign( const Vector2POD& ); 
00090         void divAssign( const Vector2POD& ); 
00091 
00092         
00093         //============================================================
00095 
00096         const Vector2POD operator+( f32 )const; 
00097         const Vector2POD operator-( f32 )const; 
00098         const Vector2POD operator*( f32 )const; 
00099         const Vector2POD operator/( f32 )const; 
00100         const Vector2POD operator+( const Vector2POD& )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; 
00105         Vector2POD& operator+=( f32 ); 
00106         Vector2POD& operator-=( f32 ); 
00107         Vector2POD& operator*=( f32 ); 
00108         Vector2POD& operator/=( f32 ); 
00109         Vector2POD& operator+=( const Vector2POD& ); 
00110         Vector2POD& operator-=( const Vector2POD& ); 
00111         Vector2POD& operator*=( const Vector2POD& ); 
00112         Vector2POD& operator/=( const Vector2POD& ); 
00113 
00114 
00115         //============================================================
00117 
00118         f32  squareLength()const;                
00119         f32  length()const;                      
00120         f32  distance( const Vector2POD& )const; 
00121         bool isZero()const;                      
00122         bool isZeroStrict()const;                
00123         bool isUnit()const;                      
00124         const Vector2POD unit()const;            
00125         void unitAssign();                       
00126 
00127 
00128         //============================================================
00130 
00131         f32 dot( const Vector2POD& )const;     
00132         f32 cross( const Vector2POD& )const;   
00133 
00134 
00135         //============================================================
00137 
00138 
00139         const ShortString toShortString()const;
00141     };
00142 
00144     class Vector2 : public Vector2POD
00145     {
00146     public:
00147         //============================================================
00149 
00150         Vector2(); 
00151         Vector2( const Vector2POD& aXY ); 
00152         Vector2( f32 aX , f32 aY ); 
00153 
00154     };
00156 }
00157 //------------------------------------------------------------
00158 #endif
00159 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義