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_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 00210 FbxPropertyT<FbxString> PrecompFileName; 00211 00219 FbxPropertyT<FbxString> RelativePrecompFileName; 00220 00228 bool ConnectProperties(); 00229 00230 /***************************************************************************************************************************** 00231 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! ** 00232 *****************************************************************************************************************************/ 00233 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00234 protected: 00235 virtual void ConstructProperties(bool pForceSet); 00236 00237 virtual FbxStringList GetTypeFlags() const; 00238 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/ 00239 }; 00240 00241 inline EFbxType FbxTypeOf(const FbxCameraStereo::EStereoType&){ return eFbxEnum; } 00242 00243 #include <fbxsdk/fbxsdk_nsend.h> 00244 00245 #endif /* _FBXSDK_SCENE_GEOMETRY_CAMERA_STEREO_H_ */