fbxsdk/scene/fbxvideo.h Source File
 
 
 
fbxsdk/scene/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(const char* pName);
00058 
00062                 FbxString GetFileName () const;
00063 
00069                 bool SetRelativeFileName(const char* 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_ */