CrossFramework Library

XBase/Vector3i.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_VECTOR3I_HPP)
00007 #else
00008 #define XBASE_INCLUDED_VECTOR3I_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <XBase/BuiltInTypes.hpp>
00012 #include <XBase/ShortString.hpp>
00013 
00014 //------------------------------------------------------------
00015 namespace XBase {
00016     struct Vector2iPOD;
00017     struct Vector3POD;
00018     struct Vector4iPOD;
00019 }
00020 
00021 //------------------------------------------------------------
00022 namespace XBase {
00024 
00025 
00031     struct Vector3iPOD
00032     {
00033         //============================================================
00035 
00036         static const Vector3iPOD Zero();     
00037         static const Vector3iPOD One();      
00038         static const Vector3iPOD Min();      
00039         static const Vector3iPOD Max();      
00040         static const Vector3iPOD UnitX();    
00041         static const Vector3iPOD UnitY();    
00042         static const Vector3iPOD UnitZ();    
00043         static const Vector3iPOD NegUnitX(); 
00044         static const Vector3iPOD NegUnitY(); 
00045         static const Vector3iPOD NegUnitZ(); 
00046 
00047 
00048         //============================================================
00050 
00051         s32 x; 
00052         s32 y; 
00053         s32 z; 
00054 
00055         
00056         //============================================================
00058 
00059         const Vector2iPOD toXY()const;
00060         const Vector2iPOD toXX()const;
00061         const Vector2iPOD toYY()const;
00062         const Vector2iPOD toZZ()const;
00063         const Vector3iPOD toX00()const;
00064         const Vector3iPOD toXY0()const;
00065         const Vector3iPOD to0Y0()const;
00066         const Vector3iPOD to0YZ()const;
00067         const Vector3iPOD to00Z()const;
00068         const Vector3iPOD toXXX()const;
00069         const Vector3iPOD toYYY()const;
00070         const Vector3iPOD toZZZ()const;
00071         const Vector4iPOD toXYZ0()const;
00072         const Vector4iPOD toXXXX()const;
00073         const Vector4iPOD toYYYY()const;
00074         const Vector4iPOD toZZZZ()const;
00075         const Vector3POD  toXYZf()const;
00077 
00078         //============================================================
00080 
00081         bool equals( const Vector3iPOD& )const;       
00082 
00083 
00084         //============================================================
00086 
00087         const Vector3iPOD add( s32 )const; 
00088         const Vector3iPOD sub( s32 )const; 
00089         const Vector3iPOD mul( s32 )const; 
00090         const Vector3iPOD div( s32 )const; 
00091         const Vector3iPOD add( const Vector3iPOD& )const; 
00092         const Vector3iPOD sub( const Vector3iPOD& )const; 
00093         const Vector3iPOD mul( const Vector3iPOD& )const; 
00094         const Vector3iPOD div( const Vector3iPOD& )const; 
00095         void addAssign( s32 ); 
00096         void subAssign( s32 ); 
00097         void mulAssign( s32 ); 
00098         void divAssign( s32 ); 
00099         void addAssign( const Vector3iPOD& ); 
00100         void subAssign( const Vector3iPOD& ); 
00101         void mulAssign( const Vector3iPOD& ); 
00102         void divAssign( const Vector3iPOD& ); 
00103 
00104         
00105         //============================================================
00107 
00108         const Vector3iPOD operator+( s32 )const; 
00109         const Vector3iPOD operator-( s32 )const; 
00110         const Vector3iPOD operator*( s32 )const; 
00111         const Vector3iPOD operator/( s32 )const; 
00112         const Vector3iPOD operator+( const Vector3iPOD& )const; 
00113         const Vector3iPOD operator-( const Vector3iPOD& )const; 
00114         const Vector3iPOD operator*( const Vector3iPOD& )const; 
00115         const Vector3iPOD operator/( const Vector3iPOD& )const; 
00116         const Vector3iPOD operator-()const; 
00117         Vector3iPOD& operator+=( s32 ); 
00118         Vector3iPOD& operator-=( s32 ); 
00119         Vector3iPOD& operator*=( s32 ); 
00120         Vector3iPOD& operator/=( s32 ); 
00121         Vector3iPOD& operator+=( const Vector3iPOD& ); 
00122         Vector3iPOD& operator-=( const Vector3iPOD& ); 
00123         Vector3iPOD& operator*=( const Vector3iPOD& ); 
00124         Vector3iPOD& operator/=( const Vector3iPOD& ); 
00125 
00126         
00127         //============================================================
00129 
00130         const Vector3iPOD min( const Vector3iPOD& )const; 
00131         const Vector3iPOD max( const Vector3iPOD& )const; 
00132 
00133 
00134         //============================================================
00136 
00137         const Vector3iPOD clamp( const Vector3iPOD& aMin , const Vector3iPOD& aMax )const; 
00138         const Vector3iPOD clampPositive()const; 
00139         const Vector3iPOD clampNegative()const; 
00140 
00141 
00142         //============================================================
00144 
00145         const Vector3iPOD abs()const; 
00146         const Vector3iPOD neg()const; 
00147         bool isPositive()const; 
00148 
00149 
00150         //============================================================
00152 
00153         bool isZero()const;                      
00154 
00155         
00156         //============================================================
00158 
00159 
00160         const ShortString toShortString()const;
00162     };
00163 
00165     class Vector3i : public Vector3iPOD
00166     {
00167     public:
00168         //============================================================
00170 
00171         Vector3i(); 
00172         Vector3i( const Vector3iPOD& aXYZ ); 
00173         Vector3i( s32 aV ); 
00174         Vector3i( const Vector2iPOD& aXY , s32 aZ ); 
00175         Vector3i( s32 aX , s32 aY , s32 aZ ); 
00176 
00177     };
00178     
00180     typedef Vector3iPOD Vec3i;
00182 }
00183 //------------------------------------------------------------
00184 #endif
00185 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義