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_SCENE_GEOMETRY_CAMERA_STEREO_H_ 00014 #define _FBXSDK_SCENE_GEOMETRY_CAMERA_STEREO_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/scene/geometry/fbxcamera.h> 00019 00020 #include <fbxsdk/fbxsdk_nsbegin.h> 00021 00030 class FBXSDK_DLL FbxCameraStereo : public FbxCamera 00031 { 00032 FBXSDK_OBJECT_DECLARE(FbxCameraStereo, FbxCamera); 00033 00034 public: 00036 virtual FbxNodeAttribute::EType GetAttributeType() const; 00037 00039 void Reset(); 00040 00043 enum EStereoType 00044 { 00045 eNone, 00046 eConverged, 00047 eOffAxis, 00048 eParallel 00049 }; 00050 00056 FbxCamera* GetLeftCamera() const; 00057 00063 FbxCamera* GetRightCamera() const; 00064 00071 bool SetLeftCamera(FbxCamera* pCamera); 00072 00079 bool SetRightCamera(FbxCamera* pCamera); 00080 00085 FbxAMatrix GetLeftCameraLocalMatrix() const; 00086 00091 FbxAMatrix GetLeftCameraGlobalMatrix() const; 00092 00097 FbxAMatrix GetRightCameraLocalMatrix() const; 00098 00103 FbxAMatrix GetRightCameraGlobalMatrix() const; 00104 00110 double ReevaluateLeftCameraFilmOffsetX() const; 00111 00117 double ReevaluateRightCameraFilmOffsetX() const; 00118 00120 // 00121 // Properties 00122 // 00124 00125 // ----------------------------------------------------------------------- 00126 // Stereo and Stereo Adjustments 00127 // ----------------------------------------------------------------------- 00128 00136 FbxPropertyT<EStereoType> Stereo; 00137 00145 FbxPropertyT<FbxDouble> InteraxialSeparation; 00146 00154 FbxPropertyT<FbxDouble> ZeroParallax; 00155 00165 FbxPropertyT<FbxDouble> ToeInAdjust; 00166 00174 FbxPropertyT<FbxDouble> FilmOffsetRightCam; 00175 00183 FbxPropertyT<FbxDouble> FilmOffsetLeftCam; 00184 00192 FbxPropertyT<FbxReference> RightCamera; 00193 00201 FbxPropertyT<FbxReference> LeftCamera; 00202 00203 00205 // 00206 // WARNING! 00207 // 00208 // Anything beyond these lines may not be documented accurately and is 00209 // subject to change without notice. 00210 // 00212 00213 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00214 00221 FbxPropertyT<FbxString> PrecompFileName; 00222 00230 FbxPropertyT<FbxString> RelativePrecompFileName; 00231 00232 friend class FbxGlobalCameraSettings; 00233 00234 public: 00242 bool ConnectProperties(); 00243 00244 protected: 00245 FbxCameraStereo(FbxManager& pManager, char const* pName); 00246 virtual bool ConstructProperties(bool pForceSet); 00247 00251 virtual FbxStringList GetTypeFlags() const; 00252 00253 private: 00254 // no private members 00255 00256 friend class FbxNode; 00257 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS 00258 }; 00259 00260 inline EFbxType FbxTypeOf(const FbxCameraStereo::EStereoType&){ return eFbxEnum; } 00261 00262 #include <fbxsdk/fbxsdk_nsend.h> 00263 00264 #endif /* _FBXSDK_SCENE_GEOMETRY_CAMERA_STEREO_H_ */