00001 /**************************************************************************************** 00002 00003 Copyright (C) 2013 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_FILEIO_GLOBAL_CAMERA_SETTINGS_H_ 00014 #define _FBXSDK_FILEIO_GLOBAL_CAMERA_SETTINGS_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/core/base/fbxstring.h> 00019 00020 #include <fbxsdk/fbxsdk_nsbegin.h> 00021 00022 class FbxStatus; 00023 class FbxManager; 00024 class FbxScene; 00025 class FbxCamera; 00026 class FbxCameraSwitcher; 00027 00028 #define FBXSDK_CAMERA_PERSPECTIVE "Producer Perspective" 00029 #define FBXSDK_CAMERA_TOP "Producer Top" 00030 #define FBXSDK_CAMERA_FRONT "Producer Front" 00031 #define FBXSDK_CAMERA_BACK "Producer Back" 00032 #define FBXSDK_CAMERA_RIGHT "Producer Right" 00033 #define FBXSDK_CAMERA_LEFT "Producer Left" 00034 #define FBXSDK_CAMERA_BOTTOM "Producer Bottom" 00035 #define FBXSDK_CAMERA_SWITCHER "Camera Switcher" 00036 00043 class FBXSDK_DLL FbxGlobalCameraSettings 00044 { 00045 FBXSDK_FRIEND_NEW(); 00046 00047 public: 00051 enum EViewingMode 00052 { 00053 eStandard, //<! Standard view mode. 00054 eXRay, //<! X ray view mode. 00055 eModelsOnly //<! Model only view mode. 00056 }; 00057 00064 bool SetDefaultCamera(const char* pCameraName, FbxStatus* pStatus=NULL); 00065 00068 const char* GetDefaultCamera() const; 00069 00071 void RestoreDefaultSettings(); 00072 00075 void SetDefaultViewingMode(EViewingMode pViewingMode); 00076 00079 EViewingMode GetDefaultViewingMode() const; 00081 00087 void CreateProducerCameras(); 00088 00090 void DestroyProducerCameras(); 00091 00095 bool IsProducerCamera(FbxCamera* pCamera) const; 00096 00099 FbxCamera* GetCameraProducerPerspective() const; 00100 00103 FbxCamera* GetCameraProducerFront() const; 00104 00107 FbxCamera* GetCameraProducerBack() const; 00108 00111 FbxCamera* GetCameraProducerLeft() const; 00112 00115 FbxCamera* GetCameraProducerRight() const; 00116 00119 FbxCamera* GetCameraProducerTop() const; 00120 00123 FbxCamera* GetCameraProducerBottom() const; 00124 00131 FbxCameraSwitcher* GetCameraSwitcher() const; 00132 00135 void SetCameraSwitcher(FbxCameraSwitcher* pSwitcher); 00137 00140 const FbxGlobalCameraSettings& operator=(const FbxGlobalCameraSettings& pGlobalCameraSettings); 00141 00142 /***************************************************************************************************************************** 00143 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! ** 00144 *****************************************************************************************************************************/ 00145 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00146 bool CopyProducerCamera(const char* pCameraName, const FbxCamera* pCamera) const; 00147 00148 private: 00149 FbxGlobalCameraSettings(FbxManager& pManager, FbxScene& pScene); 00150 ~FbxGlobalCameraSettings(); 00151 00152 FbxScene* mScene; 00153 FbxString mDefaultCamera; 00154 EViewingMode mDefaultViewingMode; 00155 FbxCamera* mCameraPerspective; 00156 FbxCamera* mCameraFront; 00157 FbxCamera* mCameraBack; 00158 FbxCamera* mCameraLeft; 00159 FbxCamera* mCameraRight; 00160 FbxCamera* mCameraTop; 00161 FbxCamera* mCameraBottom; 00162 FbxCameraSwitcher* mCameraSwitcher; 00163 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/ 00164 }; 00165 00166 #include <fbxsdk/fbxsdk_nsend.h> 00167 00168 #endif /* _FBXSDK_FILEIO_GLOBAL_CAMERA_SETTINGS_H_ */