fbxxref.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_CORE_XREF_H_
00014 #define _FBXSDK_CORE_XREF_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/fbxmanager.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00022 class FbxXRefManagerProject;
00023 class FbxDocument;
00024 
00028 class FBXSDK_DLL FbxXRefManager
00029 {
00030 public:
00032     FbxXRefManager();
00033 
00035     virtual ~FbxXRefManager();
00036 
00041 
00043         static const char* sTemporaryFileProject;
00044 
00046         static const char* sConfigurationProject;
00047 
00049         static const char* sLocalizationProject;
00050 
00061         static const char* sEmbeddedFileProject;
00063 
00072         static int     GetUrlCount(FbxProperty const &pProperty);
00073 
00079         static int     GetUrlCount(FbxString const& pUrl);
00080 
00086         static bool IsRelativeUrl  (FbxProperty const &pProperty,int pIndex);
00087 
00093         static FbxString GetUrl(FbxProperty const &pProperty,int pIndex);
00094 
00101         bool GetResolvedUrl (FbxProperty const &pProperty,int pIndex,FbxString & pResolvedPath) const;
00102     
00109         bool GetResolvedUrl (char const* pUrl, FbxDocument* pDoc, FbxString& pResolvedPath) const;
00111 
00129         bool GetFirstMatchingUrl(char const* pPrefix, char const* pOptExt, const FbxDocument* pDoc, FbxString& pResolvedPath) const;
00130 
00135 
00143         bool        AddXRefProject   (const char *pName,const char *pUrl);
00144 
00153         bool        AddXRefProject   (const char *pName,const char *pExtension,const char *pUrl);
00154 
00161         bool        AddXRefProject   (FbxDocument* pDoc);
00162 
00167         bool        RemoveXRefProject(const char *pName);
00168 
00172         bool        RemoveAllXRefProjects();
00173 
00177         int         GetXRefProjectCount() const;
00178 
00183         const char *GetXRefProjectName(int pIndex) const;
00184 
00189         const char* GetXRefProjectUrl(const char* pName);   // FIXME: Should be const, will break AV.
00190 
00195         const char* GetXRefProjectUrl(const char* pName) const;
00196 
00201         const char* GetXRefProjectUrl(int pIndex) const;
00202 
00207         inline bool HasXRefProject( const char* pName ) { return GetXRefProjectUrl(pName) != NULL; }
00208 
00214         bool GetResolvedUrl (char const *pUrl,FbxString & pResolvePath) const;
00215 
00217 private:
00218     FbxArray<FbxXRefManagerProject*>    mProjects;
00219 
00220     static bool UrlExist(const char* pUrl);
00221 };
00222 
00223 #include <fbxsdk/fbxsdk_nsend.h>
00224 
00225 #endif /* _FBXSDK_CORE_XREF_H_ */