fbxvideo.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_VIDEO_H_
00014 #define _FBXSDK_SCENE_VIDEO_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/fbxobject.h>
00019 #include <fbxsdk/core/base/fbxerror.h>
00020 #include <fbxsdk/core/math/fbxvector2.h>
00021 
00022 #include <fbxsdk/scene/fbxgroupname.h>
00023 
00024 #include <fbxsdk/fbxsdk_nsbegin.h>
00025 
00029 class FBXSDK_DLL FbxVideo : public FbxObject
00030 {
00031     FBXSDK_OBJECT_DECLARE(FbxVideo, FbxObject);
00032 
00033 public:
00038 
00039         void Reset();
00041 
00049         void ImageTextureSetMipMap(bool pUseMipMap);
00050 
00054         bool ImageTextureGetMipMap() const;
00055 
00061         bool SetFileName(char const* pName);
00062 
00066         FbxString GetFileName () const;
00067 
00073         bool SetRelativeFileName(char const* pName);
00074 
00078         const char* GetRelativeFileName() const;
00079 
00094         void SetImageSequence(bool pImageSequence);
00095 
00099         bool GetImageSequence() const;
00100 
00104         void SetImageSequenceOffset(int pOffset);
00105 
00109         int GetImageSequenceOffset() const;
00111 
00115         double GetFrameRate() const;
00116 
00120         int GetLastFrame() const;
00121 
00125         int GetWidth() const;
00126 
00130         int GetHeight() const;
00131 
00137         void SetStartFrame(int pStartFrame);
00138 
00142         int GetStartFrame() const;
00143 
00149         void SetStopFrame(int pStopFrame);
00150 
00154         int GetStopFrame() const;
00155 
00161         void SetPlaySpeed(double pPlaySpeed);
00162 
00166         double GetPlaySpeed() const;
00167 
00172         void SetOffset(FbxTime pTime);
00173 
00174         /* Retrieve the time offset.
00175          * \return     The current time shift.
00176          */
00177         FbxTime GetOffset() const;
00178 
00184         void SetFreeRunning(bool pState);
00185 
00189         bool GetFreeRunning() const;
00190 
00191 
00197         void SetLoop(bool pLoop);
00198 
00202         bool GetLoop() const;
00203 
00204 
00207         enum EInterlaceMode
00208         {
00209             eNone,           
00210             eFields,         
00211             eHalfEven,       
00212             eHalfOdd,        
00213             eFullEven,       
00214             eFullOdd,        
00215             eFullEvenOdd,    
00216             eFullOddEven     
00217         };
00218 
00222         void SetInterlaceMode(EInterlaceMode pInterlaceMode);
00223 
00227         EInterlaceMode GetInterlaceMode() const;
00228 
00229 
00232         enum EAccessMode
00233         {
00234             eDisk,
00235             eMemory,
00236             eDiskAsync
00237         };
00238 
00242         void SetAccessMode(EAccessMode pAccessMode);
00243 
00247         EAccessMode GetAccessMode() const;
00249     
00257         FbxError& GetError();
00258 
00261         enum EErrorCode
00262         {
00263             eTakeNodeError,
00264             eErrorCount        
00265         };
00266 
00270         EErrorCode GetLastErrorID() const;
00271 
00275         const char* GetLastErrorString() const;
00277 
00278 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00279 protected:
00280     FbxVideo(FbxManager& pManager, char const* pName);
00281 
00282     virtual void Construct(const FbxVideo* pFrom);
00283     virtual bool ConstructProperties(bool pForceSet);
00284     virtual bool ConnecNotify(FbxConnectEvent const &pEvent);
00285 
00286 public:
00287     virtual FbxObject& Copy(const FbxObject& pObject);
00288 
00289     virtual FbxStringList GetTypeFlags() const;
00290 
00291     void SetOriginalFormat(bool pState);
00292     bool GetOriginalFormat() const;
00293     void SetOriginalFilename(const char* pOriginalFilename);
00294     const char* GetOriginalFilename() const;
00295 
00296     FbxPropertyT<FbxBool>   ImageSequence;
00297     FbxPropertyT<FbxInt> ImageSequenceOffset;
00298     FbxPropertyT<FbxDouble> FrameRate;
00299     FbxPropertyT<FbxInt> LastFrame;
00300     FbxPropertyT<FbxInt> Width;
00301     FbxPropertyT<FbxInt> Height;
00302     FbxPropertyT<FbxString> Path;
00303     FbxPropertyT<FbxInt> StartFrame;
00304     FbxPropertyT<FbxInt> StopFrame;
00305     FbxPropertyT<FbxDouble> PlaySpeed;
00306     FbxPropertyT<FbxTime> Offset;
00307     FbxPropertyT<EInterlaceMode> InterlaceMode;
00308     FbxPropertyT<FbxBool> FreeRunning;
00309     FbxPropertyT<FbxBool> Loop;
00310     FbxPropertyT<EAccessMode> AccessMode;
00311 
00312 protected:
00313     void Init();
00314 
00315     static FbxError smError;
00316 
00317     bool                   mUseMipMap;
00318     bool                   mOriginalFormat;
00319     FbxString                mOriginalFilename;
00320 
00321     // Temporary values
00322     FbxString                mRelativeFilename;
00323 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00324 };
00325 
00326 inline EFbxType FbxTypeOf(const FbxVideo::EInterlaceMode&){ return eFbxEnum; }
00327 inline EFbxType FbxTypeOf(const FbxVideo::EAccessMode&){ return eFbxEnum; }
00328 
00329 #include <fbxsdk/fbxsdk_nsend.h>
00330 
00331 #endif /* _FBXSDK_SCENE_VIDEO_H_ */