00001 00004 #ifndef FBXFILESDK_KFBXMATH_KFBXVECTOR2_H 00005 #define FBXFILESDK_KFBXMATH_KFBXVECTOR2_H 00006 00007 /************************************************************************************** 00008 00009 Copyright © 2001 - 2008 Autodesk, Inc. and/or its licensors. 00010 All Rights Reserved. 00011 00012 The coded instructions, statements, computer programs, and/or related material 00013 (collectively the "Data") in these files contain unpublished information 00014 proprietary to Autodesk, Inc. and/or its licensors, which is protected by 00015 Canada and United States of America federal copyright law and by international 00016 treaties. 00017 00018 The Data may not be disclosed or distributed to third parties, in whole or in 00019 part, without the prior written consent of Autodesk, Inc. ("Autodesk"). 00020 00021 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY. 00022 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO 00023 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR ARISING 00024 BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE, 00025 NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR USE. 00026 WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT WARRANT THAT THE OPERATION 00027 OF THE DATA WILL BE UNINTERRUPTED OR ERROR FREE. 00028 00029 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS 00030 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR EXPENSES 00031 OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE DAMAGES OR OTHER 00032 SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS OF PROFITS, REVENUE 00033 OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY KIND), 00034 HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF LIABILITY, WHETHER DERIVED 00035 FROM CONTRACT, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE), OR OTHERWISE, 00036 ARISING OUT OF OR RELATING TO THE DATA OR ITS USE OR ANY OTHER PERFORMANCE, 00037 WHETHER OR NOT AUTODESK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS 00038 OR DAMAGE. 00039 00040 **************************************************************************************/ 00041 00042 00043 #include <fbxfilesdk/components/kbaselib/kaydaradef_h.h> 00044 #include <fbxfilesdk/components/kbaselib/kaydara.h> 00045 #include <fbxfilesdk/components/kbaselib/klib/karrayul.h> 00046 00047 #include <fbxfilesdk/kfbxplugins/kfbxtypes.h> 00048 00049 #include <fbxfilesdk/fbxfilesdk_nsbegin.h> 00050 00054 class KFBX_DLL KFbxVector2 : public fbxDouble2 00055 { 00056 00057 public: 00058 00063 00065 KFbxVector2(); 00066 00070 KFbxVector2(const KFbxVector2& pVector2); 00071 00076 KFbxVector2(double pX, double pY); 00077 00079 ~KFbxVector2(); 00080 00082 00087 00092 KFbxVector2& operator=(const KFbxVector2& pVector2); 00093 00099 double& operator[](int pIndex); 00100 00106 double GetAt(int pIndex); 00107 00113 void SetAt(int pIndex, double pValue); 00114 00119 void Set(double pX, double pY); 00120 00122 00127 00133 KFbxVector2 operator+(double pValue); 00134 00140 KFbxVector2 operator-(double pValue); 00141 00147 KFbxVector2 operator*(double pValue); 00148 00154 KFbxVector2 operator/(double pValue); 00155 00161 KFbxVector2& operator+=(double pValue); 00162 00168 KFbxVector2& operator-=(double pValue); 00169 00175 KFbxVector2& operator*=(double pValue); 00176 00182 KFbxVector2& operator/=(double pValue); 00183 00185 00190 00194 KFbxVector2 operator-(); 00195 00201 KFbxVector2 operator+(KFbxVector2& pVector); 00202 00208 KFbxVector2 operator-(KFbxVector2& pVector); 00209 00215 KFbxVector2 operator*(KFbxVector2& pVector); 00216 00222 KFbxVector2 operator/(KFbxVector2& pVector); 00223 00229 KFbxVector2& operator+=(KFbxVector2& pVector); 00230 00236 KFbxVector2& operator-=(KFbxVector2& pVector); 00237 00243 KFbxVector2& operator*=(KFbxVector2& pVector); 00244 00251 KFbxVector2& operator/=(KFbxVector2& pVector); 00252 00258 double DotProduct(KFbxVector2& pVector); 00259 00261 00266 00271 bool operator==(KFbxVector2 const& pVector) const; 00272 00277 bool operator!=(KFbxVector2 const& pVector) const; 00278 00280 00285 00289 double Length(); 00290 00294 double SquareLength(); 00295 00300 double Distance(KFbxVector2& pVector); 00301 00303 void Normalize(); 00304 00306 00311 00313 operator double* (); 00314 00316 operator const double* (); 00317 00319 operator const double* () const; 00320 00322 00323 }; 00324 00325 typedef class KFBX_DLL KArrayTemplate<KFbxVector2> KArrayKFbxVector2; 00326 00327 inline EFbxType FbxTypeOf( KFbxVector2 const &pItem ) { return eDOUBLE2; } 00328 00329 #include <fbxfilesdk/fbxfilesdk_nsend.h> 00330 00331 #endif // FBXFILESDK_KFBXMATH_KFBXVECTOR2_H 00332