fbxsdk_compatibility.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
00009  
00010 ****************************************************************************************/
00011 
00013 #ifndef _FBXSDK_COMPATIBILITY_H_
00014 #define _FBXSDK_COMPATIBILITY_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/fbxsdk_nsbegin.h>
00019 
00020 #pragma message("IMPORTANT NOTE: The FBX SDK API changed substantially. Please define FBXSDK_NEW_API in your project and fix compilation errors as instructed in fbxsdk_compatibility.h.")
00021 
00023 //
00024 //  Here is a list of types that cannot be typedef'd here, please search and replace your code with these:
00025 //
00026 //  KFbxCast                            ->  FbxCast
00027 //  KFbxIteratorSrc                     ->  FbxIteratorSrc
00028 //  KFbxIteratorDst                     ->  FbxIteratorDst
00029 //  KFbxForEach                         ->  FbxForEach
00030 //  KFbxConnectSrc                      ->  FbxConnectSrc
00031 //  KFbxConnectDst                      ->  FbxConnectDst
00032 //  KFbxTypedProperty                   ->  FbxPropertyT
00033 //  KFbxGet                             ->  Property.Get<Type>()
00034 //  KFbxSet                             ->  Property.Set(Value)
00035 //  KFbxPropertyGet                     ->  Property.Get<Type>()
00036 //  KFbxPropertySet                     ->  Property.Set(Value)
00037 //  KFbxProperty.Get(Type)              ->  Property.Get<Type>()
00038 //  KFbxProperty.Set(Value, Type)       ->  Property.Set(Value)
00039 //  KArrayTemplate                      ->  FbxArray
00040 //  FbxSdkDeleteAndClear                ->  FbxArrayDelete
00041 //  DeleteAndClear                      ->  FbxArrayDelete
00042 //  KFbxLayerElementArrayTemplate       ->  FbxLayerElementArrayTemplate
00043 //  KFbxUnitConversionOptions           ->  FbxSystemUnit::ConversionOptions
00044 //  KFbxIOSettings::GetKTimeProp        ->  FbxIOSettings::GetTimeProp
00045 //  KFbxIOSettings::SetKTimeProp        ->  FbxIOSettings::SetTimeProp
00046 //  KFbxSdkManager::GetSrcObjectCount   ->  FbxScene::GetSrcObjectCount
00047 //  KFbxSdkManager::GetSrcObject        ->  FbxScene::GetSrcObject
00048 //  FbxManagerGetSrcCount               ->  FbxScene::GetSrcObjectCount
00049 //  FbxManagerGetSrc                    ->  FbxScene::GetSrcObject
00050 //  KFbxObject::GetUpdateId             ->  no replacement, function removed
00051 //  KFbxNode::GetMultiLayer             ->  no replacement, function removed
00052 //  KFbxNode::SetMultiLayer             ->  no replacement, function removed
00053 //  KFbxNode::GetMultiTakeMode          ->  no replacement, function removed
00054 //  KFbxNode::SetMultiTakeMode          ->  no replacement, function removed
00055 //
00056 //  Most KFbxConstraint Set and Get function calls should be replaced with their property access directly.
00057 //
00058 //  For all the other errors, please refer to the convertion typedefs below for search and replace in your code.
00059 //
00060 
00061 
00063 //Now we redefine previous defines using new ones
00064 #if defined(FBXSDK_ENV_WIN)
00065     #define KARCH_ENV_WIN               1
00066     #define KARCH_ENV_WIN32             1
00067 #elif defined(FBXSDK_ENV_MAC)
00068     #define KARCH_ENV_MACOSX            1
00069     #define KARCH_ENV_POSIX             1
00070 #elif defined(FBXSDK_ENV_LINUX)
00071     #define KARCH_ENV_LINUX             1
00072     #define KARCH_ENV_POSIX             1
00073 #endif
00074 
00075 #if defined(FBXSDK_ARCH_32)
00076     #define KARCH_ARCH_IA32             1
00077 #elif defined(FBXSDK_ARCH_64)
00078     #define KARCH_ARCH_64               1
00079 #endif
00080 
00081 #if defined(FBXSDK_COMPILER_MSC)
00082     #define KARCH_DEV_MSC               _MSC_VER
00083 #elif defined(FBXSDK_COMPILER_GNU)
00084     #define KARCH_DEV_GNUC              __GNUC__
00085 #endif
00086 
00087 #define KFBX_DLL                        FBXSDK_DLL
00088 #define KFBX_DLLEXPORT                  FBXSDK_DLLEXPORT
00089 #define KFBX_DLLIMPORT                  FBXSDK_DLLIMPORT
00090 
00091 #define KFBX_SAFE_DELETE(p)             FBX_SAFE_DELETE(p)
00092 #define KFBX_SAFE_DELETE_ARRAY(p)       FBX_SAFE_DELETE_ARRAY(p)
00093 #define KFBX_SAFE_DESTROY_OBJECT(p)     FBX_SAFE_DESTROY(p)
00094 
00095 #define K_ASSERT(c)                     FBX_ASSERT(c)
00096 #define K_ASSERT_MSG(c,m)               FBX_ASSERT_MSG(c,m)
00097 #define K_ASSERT_MSG_NOW(m)             FBX_ASSERT_NOW(m)
00098 #define K_CHECKRTN(c)                   FBX_ASSERT_RETURN(c)
00099 #define K_CHECKRTNV(c,v)                FBX_ASSERT_RETURN_VALUE(c,v)
00100 #define K_STATIC_ASSERT(c)              FBX_ASSERT_STATIC(c)
00101 
00102 #define K_FLOAT_EPSILON                 FBXSDK_FLOAT_EPSILON
00103 #define K_DOUBLE_EPSILON                FBXSDK_DOUBLE_EPSILON
00104 
00105 #define KFBXOBJECT_DECLARE(c,p)         FBXSDK_OBJECT_DECLARE(c,p)
00106 #define KFBXOBJECT_IMPLEMENT(c)         FBXSDK_OBJECT_IMPLEMENT(c)
00107 
00109 //Now let's try to typedef as much as we can
00110 typedef void*                           kPtr;
00111 typedef FbxBool                         kBool;
00112 typedef FbxChar                         kByte;
00113 typedef FbxUChar                        kUByte;
00114 typedef FbxShort                        kShort;
00115 typedef FbxUShort                       kUShort;
00116 typedef FbxInt                          kInt;
00117 typedef FbxUInt                         kUInt;
00118 typedef FbxLong                         kLong;
00119 typedef FbxULong                        kULong;
00120 typedef FbxLongLong                     kLongLong;
00121 typedef FbxULongLong                    kULongLong;
00122 typedef FbxFloat                        kFloat;
00123 typedef FbxDouble                       kDouble;
00124 typedef FbxHandle                       kReference;
00125 typedef FbxDouble3                      fbxDouble3;
00126 typedef FbxInt16                        kInt16;
00127 typedef FbxUInt16                       kUInt16;
00128 typedef FbxInt32                        kInt32;
00129 typedef FbxUInt32                       kUInt32;
00130 typedef FbxInt64                        kInt64;
00131 typedef FbxUInt64                       kUInt64;
00132 typedef FbxCharPtr                      kTCharPtr;
00133 
00134 typedef FbxModule                       kLibHandle;
00135 
00136 typedef FbxPointerFreeGuard             KFbxPointerFreeGuard;
00137 typedef FbxError                        KError;
00138 typedef FbxString                       KString;
00139 typedef FbxStringList                   KStringList;
00140 typedef FbxStringCompare                KStringCompare;
00141 typedef FbxCharCompare                  KCharCompare;
00142 typedef FbxCharPtrSet                   KCharPtrSet;
00143 typedef FbxArray<FbxHandle>             KArrayUL;
00144 typedef FbxFolder                       KDir;
00145 typedef FbxFile                         KFile;
00146 typedef FbxTime                         KTime;
00147 typedef FbxTimeSpan                     KTimeSpan;
00148 typedef FbxSet                          KSet;
00149 typedef FbxNameHandler                  KName;
00150 typedef FbxColor                        KFbxColor;
00151 typedef FbxVector2                      KFbxVector2;
00152 typedef FbxVector4                      KFbxVector4;
00153 typedef FbxMatrix                       KFbxMatrix;
00154 typedef FbxAMatrix                      KFbxXMatrix;
00155 
00156 typedef FbxBlob                         fbxBlob;
00157 typedef FbxString                       fbxString;
00158 typedef FbxDateTime                     fbxDateTime;
00159 
00160 typedef FbxClassId                      kFbxClassId;
00161 typedef FbxObject                       KFbxObject;
00162 typedef FbxCollection                   KFbxCollection;
00163 typedef FbxCollectionExclusive          KFbxCollectionExclusive;
00164 typedef FbxDataType                     KFbxDataType;
00165 typedef FbxProperty                     KFbxProperty;
00166 typedef FbxManager                      KFbxSdkManager;
00167 typedef FbxNode                         KFbxNode;
00168 typedef FbxNodeAttribute                KFbxNodeAttribute;
00169 typedef FbxCamera                       KFbxCamera;
00170 typedef FbxCameraSwitcher               KFbxCameraSwitcher;
00171 typedef FbxCameraStereo                 KFbxCameraStereo;
00172 typedef FbxGeometry                     KFbxGeometry;
00173 typedef FbxGeometryBase                 KFbxGeometryBase;
00174 typedef FbxLayer                        KFbxLayer;
00175 typedef FbxLayerElement                 KFbxLayerElement;
00176 typedef FbxLayerElementArray            KFbxLayerElementArray;
00177 typedef FbxLayerElementNormal           KFbxLayerElementNormal;
00178 typedef FbxLayerElementMaterial         KFbxLayerElementMaterial;
00179 typedef FbxLayerElementVisibility       KFbxLayerElementVisibility;
00180 typedef FbxLayerElementVertexColor      KFbxLayerElementVertexColor;
00181 typedef FbxLayerElementSmoothing        KFbxLayerElementSmoothing;
00182 typedef FbxLayerElementUV               KFbxLayerElementUV;
00183 typedef FbxLayerElementPolygonGroup     KFbxLayerElementPolygonGroup;
00184 typedef FbxLayerElementTexture          KFbxLayerElementTexture;
00185 typedef FbxMesh                         KFbxMesh;
00186 typedef FbxMarker                       KFbxMarker;
00187 typedef FbxSkeleton                     KFbxSkeleton;
00188 typedef FbxNull                         KFbxNull;
00189 typedef FbxOpticalReference             KFbxOpticalReference;
00190 typedef FbxLight                        KFbxLight;
00191 typedef FbxLine                         KFbxLine;
00192 typedef FbxNurbs                        KFbxNurb;
00193 typedef FbxNurbsSurface                 KFbxNurbsSurface;
00194 typedef FbxNurbsCurve                   KFbxNurbsCurve;
00195 typedef FbxTrimNurbsSurface             KFbxTrimNurbSurface;
00196 typedef FbxPatch                        KFbxPatch;
00197 typedef FbxTexture                      KFbxTexture;
00198 typedef FbxFileTexture                  KFbxFileTexture;
00199 typedef FbxLayeredTexture               KFbxLayeredTexture;
00200 typedef FbxProceduralTexture            KFbxProceduralTexture;
00201 typedef FbxSurfaceMaterial              KFbxSurfaceMaterial;
00202 typedef FbxSurfaceLambert               KFbxSurfaceLambert;
00203 typedef FbxSurfacePhong                 KFbxSurfacePhong;
00204 typedef FbxVideo                        KFbxVideo;
00205 typedef FbxCache                        KFbxCache;
00206 typedef FbxVertexCacheDeformer          KFbxVertexCacheDeformer;
00207 typedef FbxDeformer                     KFbxDeformer;
00208 typedef FbxCluster                      KFbxCluster;
00209 typedef FbxSkin                         KFbxSkin;
00210 typedef FbxScene                        KFbxScene;
00211 typedef FbxDocument                     KFbxDocument;
00212 typedef FbxDocumentInfo                 KFbxDocumentInfo;
00213 typedef FbxAnimCurve                    KFbxAnimCurve;
00214 typedef FbxAnimCurveBase                KFbxAnimCurveBase;
00215 typedef FbxAnimCurveKey                 KFbxAnimCurveKey;
00216 typedef FbxAnimCurveNode                KFbxAnimCurveNode;
00217 typedef FbxAnimCurveDef                 KFbxAnimCurveDef;
00218 typedef FbxAnimStack                    KFbxAnimStack;
00219 typedef FbxAnimLayer                    KFbxAnimLayer;
00220 typedef FbxAnimEvaluator                KFbxAnimEvaluator;
00221 typedef FbxSurfaceMaterial              KFbxSurfaceMaterial;
00222 typedef FbxConstraint                   KFbxConstraint;
00223 typedef FbxConstraintAim                KFbxConstraintAim;
00224 typedef FbxConstraintCustom             KFbxConstraintCustom;
00225 typedef FbxConstraintParent             KFbxConstraintParent;
00226 typedef FbxConstraintPosition           KFbxConstraintPosition;
00227 typedef FbxConstraintRotation           KFbxConstraintRotation;
00228 typedef FbxConstraintScale              KFbxConstraintScale;
00229 typedef FbxConstraintSingleChainIK      KFbxConstraintSingleChainIK;
00230 typedef FbxCharacter                    KFbxCharacter;
00231 typedef FbxCharacterLink                KFbxCharacterLink;
00232 typedef FbxCharacterPose                KFbxCharacterPose;
00233 typedef FbxControlSet                   KFbxControlSet;
00234 typedef FbxControlSetPlug               KFbxControlSetPlug;
00235 typedef FbxControlSetLink               KFbxControlSetLink;
00236 typedef FbxEffector                     KFbxEffector;
00237 typedef FbxPose                         KFbxPose;
00238 typedef FbxShape                        KFbxShape;
00239 typedef FbxBlendShape                   KFbxBlendShape;
00240 typedef FbxBlendShapeChannel            KFbxBlendShapeChannel;
00241 typedef FbxImporter                     KFbxImporter;
00242 typedef FbxExporter                     KFbxExporter;
00243 typedef FbxIOSettings                   KFbxIOSettings;
00244 typedef FbxGlobalSettings               KFbxGlobalSettings;
00245 typedef FbxGlobalCameraSettings         KFbxGlobalCameraSettings;
00246 typedef FbxGlobalLightSettings          KFbxGlobalLightSettings;
00247 typedef FbxGlobalTimeSettings           KFbxGlobalTimeSettings;
00248 typedef FbxTakeInfo                     KFbxTakeInfo;
00249 typedef FbxTakeLayerInfo                KLayerInfo;
00250 typedef FbxThumbnail                    KFbxThumbnail;
00251 typedef FbxPlugin                       KFbxPlugin;
00252 typedef FbxAxisSystem                   KFbxAxisSystem;
00253 typedef FbxSystemUnit                   KFbxSystemUnit;
00254 typedef FbxStatistics                   KFbxStatistics;
00255 typedef FbxStatisticsFbx                KFbxStatisticsFbx;
00256 
00257 typedef EFbxRotationOrder               ERotationOrder;
00258 typedef EFbxQuatInterpMode              EQuaternionInterpolation;
00259 
00260 typedef FbxIOFileHeaderInfo             KFbxFileHeaderInfo;
00261 
00262 //#define eUNIDENTIFIED                 eFbxUndefined
00263 #define eBYTE1                          eFbxChar
00264 #define eUBYTE1                         eFbxUChar
00265 #define eSHORT1                         eFbxShort
00266 #define eUSHORT1                        eFbxUShort
00267 #define eUINTEGER1                      eFbxUInt
00268 #define eLONGLONG1                      eFbxLongLong
00269 #define eULONGLONG1                     eFbxULongLong
00270 #define eHALFFLOAT                      eFbxHalfFloat
00271 #define eBOOL1                          eFbxBool
00272 #define eINTEGER1                       eFbxInt
00273 #define eFLOAT1                         eFbxFloat
00274 #define eDOUBLE1                        eFbxDouble
00275 #define eDOUBLE2                        eFbxDouble2
00276 #define eDOUBLE3                        eFbxDouble3
00277 #define eDOUBLE4                        eFbxDouble4
00278 #define eDOUBLE44                       eFbxDouble4x4
00279 #define eENUM                           eFbxEnum
00280 #define eSTRING                         eFbxString
00281 #define eTIME                           eFbxTime
00282 #define eREFERENCE                      eFbxReference
00283 #define eBLOB                           eFbxBlob
00284 #define eDISTANCE                       eFbxDistance
00285 #define eDATETIME                       eFbxDateTime
00286 #define eMAX_TYPES                      eFbxTypeCount
00287 
00288 #define eEULER_XYZ                      eEulerXYZ
00289 #define eEULER_XZY                      eEulerXZY
00290 #define eEULER_YZX                      eEulerYZX
00291 #define eEULER_YXZ                      eEulerYXZ
00292 #define eEULER_ZXY                      eEulerZXY
00293 #define eEULER_ZYX                      eEulerZYX
00294 #define eSPHERIC_XYZ                    eSphericXYZ
00295 
00296 #define eINHERIT_RrSs                   FbxTransform::eInheritRrSs
00297 #define eINHERIT_RSrs                   FbxTransform::eInheritRSrs
00298 #define eINHERIT_Rrs                    FbxTransform::eInheritRrs
00299 
00300 #define eQUATINTERP_OFF                 eQuatInterpOff
00301 #define eQUATINTERP_CLASSIC             eQuatInterpClassic
00302 #define eQUATINTERP_SLERP               eQuatInterpSlerp
00303 #define eQUATINTERP_CUBIC               eQuatInterpCubic
00304 #define eQUATINTERP_TANGENTDEPENDENT    eQuatInterpTangentDependent
00305 #define eQUATINTERP_NBMODES             eQuatInterpCount
00306 
00307 #define DTNone                          FbxUndefinedDT
00308 #define DTBool                          FbxBoolDT
00309 #define DTInteger                       FbxIntDT
00310 #define DTLongLong                      FbxLongLongDT
00311 #define DTULongLong                     FbxULongLongDT
00312 #define DTFloat                         FbxFloatDT
00313 #define DTDouble                        FbxDoubleDT
00314 #define DTEnum                          FbxEnumDT
00315 #define DTString                        FbxStringDT
00316 #define DTStringList                    FbxStringListDT
00317 #define DTCharPtr                       FbxCharPtrDT
00318 #define DTTime                          FbxTimeDT
00319 #define DTTimeCode                      FbxTimeCodeDT
00320 #define DTCompound                      FbxCompoundDT
00321 #define DTAction                        FbxActionDT
00322 #define DTEvent                         FbxEventDT
00323 #define DTReferenceObject               FbxReferenceObjectDT
00324 #define DTReferenceProperty             FbxReferencePropertyDT
00325 #define DTColor3                        FbxColor3DT
00326 #define DTColor4                        FbxColor4DT
00327 #define DTReal                          FbxRealDT
00328 #define DTDouble2                       FbxDouble2DT
00329 #define DTLocalTranslation              FbxLocalTranslationDT
00330 #define DTLocalRotation                 FbxLocalRotationDT
00331 #define DTLocalScaling                  FbxLocalScalingDT
00332 #define DTTranslation                   FbxTranslationDT
00333 #define DTRotation                      FbxRotationDT
00334 #define DTScaling                       FbxScalingDT
00335 #define DTVector3D                      FbxDouble3DT
00336 #define DTDouble3                       FbxDouble3DT
00337 #define DTQuaternion                    FbxQuaternionDT
00338 #define DTLocalQuaternion               FbxLocalQuaternionDT
00339 #define DTVisibility                    FbxVisibilityDT
00340 #define DTVector4D                      FbxDouble4DT
00341 #define DTDouble4                       FbxDouble4DT
00342 #define DTIntensity                     FbxIntensityDT
00343 #define DTConeAngle                     FbxConeAngleDT
00344 #define DTFog                           FbxFogDT
00345 #define DTShape                         FbxShapeDT
00346 #define DTFieldOfView                   FbxFieldOfViewDT
00347 #define DTFieldOfViewX                  FbxFieldOfViewXDT
00348 #define DTFieldOfViewY                  FbxFieldOfViewYDT
00349 #define DTOpticalCenterX                FbxOpticalCenterXDT
00350 #define DTOpticalCenterY                FbxOpticalCenterYDT
00351 #define DTRoll                          FbxRollDT
00352 #define DTCameraIndex                   FbxCameraIndexDT
00353 #define DTTimeWarp                      FbxTimeWarpDT
00354 #define DTTranslationUV                 FbxTranslationUVDT
00355 #define DTScalingUV                     FbxScalingUVDT
00356 #define DTOrientation                   FbxOrientationDT
00357 #define DTLookAt                        FbxLookAtDT
00358 #define DTOcclusion                     FbxOcclusionDT
00359 #define DTWeight                        FbxWeightDT
00360 #define DTIKReachTranslation            FbxIKReachTranslationDT
00361 #define DTIKReachRotation               FbxIKReachRotationDT
00362 #define DTTextureRotation               FbxTextureRotationDT
00363 #define DTHSB                           FbxHSBDT
00364 #define DTTranslationMatrix             FbxTranslationMatrixDT
00365 #define DTScalingMatrix                 FbxScalingMatrixDT
00366 #define DTRotationMatrix                FbxRotationMatrixDT
00367 #define DTTransformMatrix               FbxTransformMatrixDT
00368 #define DTBlob                          FbxBlobDT
00369 
00370 FBX_DEPRECATED inline void KFbxUTF8ToWidechar(const char* pInUTF8, wchar_t*& pOutWideChar) { FbxUTF8ToWC(pInUTF8, pOutWideChar); }
00371 FBX_DEPRECATED inline void KFbxWideCharToUTF8(const wchar_t* pInWideChar, char*& pOutUTF8) { FbxWCToUTF8(pInWideChar, pOutUTF8); }
00372 FBX_DEPRECATED inline void RemoveChar(FbxString& pString, char pToRemove){ FbxRemoveChar(pString, pToRemove); }
00373 #if defined(FBXSDK_ENV_WIN)
00374     FBX_DEPRECATED inline void KFbxWideCharToAnsi(const wchar_t* pInWideChar, char*& pOutANSI){ FbxWCToAnsi(pInWideChar, pOutANSI); }
00375     FBX_DEPRECATED inline void KFbxAnsiToWideChar(const char* pInANSI, wchar_t*& pOutWideChar){ FbxAnsiToWC(pInANSI, pOutWideChar); }
00376     FBX_DEPRECATED inline void KFbxAnsiToUTF8(const char* pInANSI, char*& pOutUTF8){ FbxAnsiToUTF8(pInANSI, pOutUTF8); }
00377     FBX_DEPRECATED inline void KFbxUTF8ToAnsi(const char* pInUTF8, char*& pOutANSI){ FbxUTF8ToAnsi(pInUTF8, pOutANSI); }
00378 #endif
00379 
00380 FBX_DEPRECATED inline void KRegisterAssertStubFct(FbxAssertProc pAssertProc){ FbxAssertSetProc(pAssertProc); }
00381 FBX_DEPRECATED inline KString kGetTempPath(){ return FbxGetSystemTempPath(); }
00382 FBX_DEPRECATED inline KString KFbxExtractFileName(const char* pFileName, bool pWithExtension){ return FbxPathUtils::GetFileName(pFileName, pWithExtension); }
00383 FBX_DEPRECATED inline KString KFbxCleanPath(const char* pFilePath){ return FbxPathUtils::Clean(pFilePath); }
00384 FBX_DEPRECATED inline KString KFbxExtractFileExtension(const char* pFilePath){ return FbxPathUtils::GetExtensionName(pFilePath); }
00385 FBX_DEPRECATED inline KString KFbxExtractDirectory(const char* pFilePath){ return FbxPathUtils::GetFolderName(pFilePath); }
00386 FBX_DEPRECATED inline void KTime_SetGlobalTimeMode(KTime::EMode pTimeMode, double pFrameRate=0.0){ FbxSetGlobalTimeMode(pTimeMode, pFrameRate); }
00387 FBX_DEPRECATED inline double KTime_GetFrameRate(KTime::EMode pTimeMode){ return FbxGetFrameRate(pTimeMode); }
00388 FBX_DEPRECATED inline kLibHandle KLibraryGetProc(kLibHandle pLibHandle, const char* pProcName){ return FbxModuleGetProc(pLibHandle, pProcName); }
00389 
00390 #include <fbxsdk/fbxsdk_nsend.h>
00391 
00392 #endif /* _FBXSDK_COMPATIBILITY_H_ */