fbxcamerastereo.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_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_ */