fbxvideo.h

Go to the documentation of this file.
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_VIDEO_H_
00014 #define _FBXSDK_SCENE_VIDEO_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/fbxobject.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00025 class FBXSDK_DLL FbxVideo : public FbxObject
00026 {
00027     FBXSDK_OBJECT_DECLARE(FbxVideo, FbxObject);
00028 
00029 public:
00034 
00035         void Reset();
00037 
00045         void ImageTextureSetMipMap(bool pUseMipMap);
00046 
00050         bool ImageTextureGetMipMap() const;
00051 
00057         bool SetFileName(char const* pName);
00058 
00062         FbxString GetFileName () const;
00063 
00069         bool SetRelativeFileName(char const* pName);
00070 
00074         const char* GetRelativeFileName() const;
00075 
00090         void SetImageSequence(bool pImageSequence);
00091 
00095         bool GetImageSequence() const;
00096 
00100         void SetImageSequenceOffset(int pOffset);
00101 
00105         int GetImageSequenceOffset() const;
00107 
00111         double GetFrameRate() const;
00112 
00116         int GetLastFrame() const;
00117 
00121         int GetWidth() const;
00122 
00126         int GetHeight() const;
00127 
00133         void SetStartFrame(int pStartFrame);
00134 
00138         int GetStartFrame() const;
00139 
00145         void SetStopFrame(int pStopFrame);
00146 
00150         int GetStopFrame() const;
00151 
00157         void SetPlaySpeed(double pPlaySpeed);
00158 
00162         double GetPlaySpeed() const;
00163 
00168         void SetOffset(FbxTime pTime);
00169 
00170         /* Retrieve the time offset.
00171          * \return     The current time shift.
00172          */
00173         FbxTime GetOffset() const;
00174 
00180         void SetFreeRunning(bool pState);
00181 
00185         bool GetFreeRunning() const;
00186 
00187 
00193         void SetLoop(bool pLoop);
00194 
00198         bool GetLoop() const;
00199 
00200 
00203         enum EInterlaceMode
00204         {
00205             eNone,           
00206             eFields,         
00207             eHalfEven,       
00208             eHalfOdd,        
00209             eFullEven,       
00210             eFullOdd,        
00211             eFullEvenOdd,    
00212             eFullOddEven     
00213         };
00214 
00218         void SetInterlaceMode(EInterlaceMode pInterlaceMode);
00219 
00223         EInterlaceMode GetInterlaceMode() const;
00224 
00225 
00228         enum EAccessMode
00229         {
00230             eDisk,
00231             eMemory,
00232             eDiskAsync
00233         };
00234 
00238         void SetAccessMode(EAccessMode pAccessMode);
00239 
00243         EAccessMode GetAccessMode() const;
00245     
00246 /*****************************************************************************************************************************
00247 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00248 *****************************************************************************************************************************/
00249 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00250 protected:
00251     virtual void Construct(const FbxVideo* pFrom);
00252     virtual void ConstructProperties(bool pForceSet);
00253     virtual bool ConnectNotify(FbxConnectEvent const &pEvent);
00254 
00255 public:
00256     virtual FbxObject& Copy(const FbxObject& pObject);
00257 
00258     virtual FbxStringList GetTypeFlags() const;
00259 
00260     void SetOriginalFormat(bool pState);
00261     bool GetOriginalFormat() const;
00262     void SetOriginalFilename(const char* pOriginalFilename);
00263     const char* GetOriginalFilename() const;
00264 
00265     FbxPropertyT<FbxBool>   ImageSequence;
00266     FbxPropertyT<FbxInt> ImageSequenceOffset;
00267     FbxPropertyT<FbxDouble> FrameRate;
00268     FbxPropertyT<FbxInt> LastFrame;
00269     FbxPropertyT<FbxInt> Width;
00270     FbxPropertyT<FbxInt> Height;
00271     FbxPropertyT<FbxString> Path;
00272     FbxPropertyT<FbxInt> StartFrame;
00273     FbxPropertyT<FbxInt> StopFrame;
00274     FbxPropertyT<FbxDouble> PlaySpeed;
00275     FbxPropertyT<FbxTime> Offset;
00276     FbxPropertyT<EInterlaceMode> InterlaceMode;
00277     FbxPropertyT<FbxBool> FreeRunning;
00278     FbxPropertyT<FbxBool> Loop;
00279     FbxPropertyT<EAccessMode> AccessMode;
00280 
00281 protected:
00282     void Init();
00283 
00284     bool        mUseMipMap;
00285     bool        mOriginalFormat;
00286     FbxString   mOriginalFilename;
00287     FbxString   mRelativeFilename;
00288 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00289 };
00290 
00291 inline EFbxType FbxTypeOf(const FbxVideo::EInterlaceMode&){ return eFbxEnum; }
00292 inline EFbxType FbxTypeOf(const FbxVideo::EAccessMode&){ return eFbxEnum; }
00293 
00294 #include <fbxsdk/fbxsdk_nsend.h>
00295 
00296 #endif /* _FBXSDK_SCENE_VIDEO_H_ */