FBX SDK Reference Guide: kfbxcamera.h Source File
Go to the documentation of this file.
00001 
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXCAMERA_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXCAMERA_H
00006 
00007 /**************************************************************************************
00008 
00009  Copyright ?2001 - 2008 Autodesk, Inc. and/or its licensors.
00010  All Rights Reserved.
00011 
00012  The coded instructions, statements, computer programs, and/or related material 
00013  (collectively the "Data") in these files contain unpublished information 
00014  proprietary to Autodesk, Inc. and/or its licensors, which is protected by 
00015  Canada and United States of America federal copyright law and by international 
00016  treaties. 
00017  
00018  The Data may not be disclosed or distributed to third parties, in whole or in
00019  part, without the prior written consent of Autodesk, Inc. ("Autodesk").
00020 
00021  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
00022  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
00023  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR ARISING
00024  BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE, 
00025  NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR USE. 
00026  WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT WARRANT THAT THE OPERATION
00027  OF THE DATA WILL BE UNINTERRUPTED OR ERROR FREE. 
00028  
00029  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
00030  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR EXPENSES
00031  OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE DAMAGES OR OTHER
00032  SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS OF PROFITS, REVENUE
00033  OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY KIND),
00034  HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF LIABILITY, WHETHER DERIVED
00035  FROM CONTRACT, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE), OR OTHERWISE,
00036  ARISING OUT OF OR RELATING TO THE DATA OR ITS USE OR ANY OTHER PERFORMANCE,
00037  WHETHER OR NOT AUTODESK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS
00038  OR DAMAGE. 
00039 
00040 **************************************************************************************/
00041 
00042 #include <fbxfilesdk/components/kbaselib/kaydaradef_h.h>
00043 #include <fbxfilesdk/components/kbaselib/kaydara.h>
00044 
00045 #include <fbxfilesdk/kfbxplugins/kfbxnodeattribute.h>
00046 #include <fbxfilesdk/kfbxplugins/kfbxcolor.h>
00047 
00048 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00049 
00050 #include <fbxfilesdk/components/kbaselib/klib/kstring.h>
00051 
00052 #ifdef KARCH_DEV_MACOSX_CFM
00053     #include <CFURL.h>
00054     #include <Files.h>
00055 #endif
00056 
00057 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00058 
00059 class KFbxTexture;
00060 class KFbxSdkManager;
00061 class KFbxMatrix;
00062 class KFbxXMatrix;
00063 class KTime;
00064 
00072 class KFBX_DLL KFbxCamera : public KFbxNodeAttribute
00073 {
00074     KFBXOBJECT_DECLARE(KFbxCamera,KFbxNodeAttribute);
00075 
00076 public:
00078     virtual EAttributeType GetAttributeType() const;
00079 
00081     void Reset();
00082 
00087 
00095     K_DEPRECATED void SetPosition(const KFbxVector4& pPosition);
00096 
00104     K_DEPRECATED KFbxVector4 GetPosition() const;
00105 
00112     K_DEPRECATED void SetUpVector(const KFbxVector4& pVector);
00113 
00120     K_DEPRECATED KFbxVector4 GetUpVector() const;
00121 
00131     K_DEPRECATED void SetDefaultCameraInterestPosition(const KFbxVector4& pPosition);
00132 
00142     K_DEPRECATED KFbxVector4 GetDefaultCameraInterestPosition() const;
00143 
00150     K_DEPRECATED void SetRoll(double pRoll);
00151 
00158     K_DEPRECATED double GetRoll() const;
00159 
00166     K_DEPRECATED void SetTurnTable(double pTurnTable);
00167 
00174     K_DEPRECATED double GetTurnTable() const;
00175 
00189     typedef enum
00190     {
00191         ePERSPECTIVE,
00192         eORTHOGONAL
00193     } ECameraProjectionType;
00194 
00201     K_DEPRECATED void SetProjectionType(ECameraProjectionType pProjectionType);
00202 
00209     K_DEPRECATED ECameraProjectionType GetProjectionType() const;
00210 
00212 
00217 
00231     typedef enum
00232     {
00233         eCUSTOM_FORMAT,
00234         eD1_NTSC,
00235         eNTSC,
00236         ePAL,
00237         eD1_PAL,
00238         eHD,
00239         e640x480,
00240         e320x200,
00241         e320x240,
00242         e128x128,
00243         eFULL_SCREEN
00244     } ECameraFormat;
00245 
00252     void SetFormat(ECameraFormat pFormat);
00253 
00257     ECameraFormat GetFormat() const;
00258 
00266     typedef enum
00267     {
00268         eWINDOW_SIZE,
00269         eFIXED_RATIO,
00270         eFIXED_RESOLUTION,
00271         eFIXED_WIDTH,
00272         eFIXED_HEIGHT
00273     } ECameraAspectRatioMode;
00274 
00286     void SetAspect(ECameraAspectRatioMode pRatioMode, double pWidth, double pHeight);
00287 
00291     ECameraAspectRatioMode GetAspectRatioMode() const;
00292 
00299     K_DEPRECATED double GetAspectWidth() const;
00300 
00307     K_DEPRECATED double GetAspectHeight() const;
00308 
00314     void SetPixelRatio(double pRatio);
00315 
00319     double GetPixelRatio() const;
00320 
00327     void SetNearPlane(double pDistance);
00328 
00333     double GetNearPlane() const;
00334 
00341     void SetFarPlane(double pDistance);
00342 
00347     double GetFarPlane() const;
00348 
00357     K_DEPRECATED void SetMouseLock(bool pMouseLock);
00358 
00367     K_DEPRECATED bool GetMouseLock() const;
00368 
00370 
00380 
00395     typedef enum
00396     {
00397         eCUSTOM_APERTURE_FORMAT = 0,
00398         e16MM_THEATRICAL,
00399         eSUPER_16MM,
00400         e35MM_ACADEMY,
00401         e35MM_TV_PROJECTION,
00402         e35MM_FULL_APERTURE,
00403         e35MM_185_PROJECTION,
00404         e35MM_ANAMORPHIC,
00405         e70MM_PROJECTION,
00406         eVISTAVISION,
00407         eDYNAVISION,
00408         eIMAX
00409     } ECameraApertureFormat;
00410 
00415     void SetApertureFormat(ECameraApertureFormat pFormat);
00416 
00420     ECameraApertureFormat GetApertureFormat() const;
00421 
00430     typedef enum
00431     {
00432         eHORIZONTAL_AND_VERTICAL,
00433         eHORIZONTAL,
00434         eVERTICAL,
00435         eFOCAL_LENGTH
00436     } ECameraApertureMode;
00437 
00441     void SetApertureMode(ECameraApertureMode pMode);
00442 
00446     ECameraApertureMode GetApertureMode() const;
00447 
00453     void SetApertureWidth(double pWidth);
00454 
00458     double GetApertureWidth() const;
00459 
00465     void SetApertureHeight(double pHeight);
00466 
00470     double GetApertureHeight() const;
00471 
00477     void SetSqueezeRatio(double pRatio);
00478 
00482     double GetSqueezeRatio() const;
00483 
00491     K_DEPRECATED void SetOrthoZoom(const double& pOrthoZoom);
00492 
00499     K_DEPRECATED double GetOrthoZoom() const;
00500 
00510     typedef enum
00511     {
00512         eNO_FIT,
00513         eVERTICAL_FIT,
00514         eHORIZONTAL_FIT,
00515         eFILL_FIT,
00516         eOVERSCAN_FIT,
00517         eSTRETCH_FIT
00518     } ECameraGateFit;
00519 
00526     K_DEPRECATED void SetGateFit(const ECameraGateFit pGateFit);
00527 
00534     K_DEPRECATED ECameraGateFit GetGateFit() const;
00535 
00540     double ComputeFieldOfView(double pFocalLength) const;
00541 
00546     double ComputeFocalLength(double pAngleOfView);
00548 
00553 
00558     void SetBackgroundFileName(const char* pFileName);
00559 
00560 #ifdef KARCH_DEV_MACOSX_CFM
00561     bool SetBackgroundFile(const FSSpec &pMacFileSpec);
00562     bool SetBackgroundFile(const FSRef &pMacFileRef);
00563     bool SetBackgroundFile(const CFURLRef &pMacURL);
00564 #endif
00565 
00569     char const* GetBackgroundFileName() const;
00570 
00571 #ifdef KARCH_DEV_MACOSX_CFM
00572     bool GetBackgroundFile(FSSpec &pMacFileSpec) const;
00573     bool GetBackgroundFile(FSRef &pMacFileRef) const;
00574     bool GetBackgroundFile(CFURLRef &pMacURL) const;
00575 #endif
00576 
00581     void SetBackgroundMediaName(const char* pFileName);
00582 
00586     char const* GetBackgroundMediaName() const;
00587 
00593     typedef enum
00594     {
00595         eDISABLED,
00596         eALWAYS,
00597         eWHEN_MEDIA
00598     } ECameraBackgroundDisplayMode;
00599 
00606     K_DEPRECATED void SetBackgroundDisplayMode(ECameraBackgroundDisplayMode pMode);
00607 
00614     K_DEPRECATED ECameraBackgroundDisplayMode GetBackgroundDisplayMode() const;
00615 
00621     typedef enum
00622     {
00623         eBACKGROUND,
00624         eFOREGROUND,
00625         eBACKGROUND_AND_FOREGROUND
00626     } ECameraBackgroundDrawingMode;
00627 
00634     K_DEPRECATED void SetBackgroundDrawingMode(ECameraBackgroundDrawingMode pMode);
00635 
00642     K_DEPRECATED ECameraBackgroundDrawingMode GetBackgroundDrawingMode() const;
00643 
00652     K_DEPRECATED void SetForegroundMatteThresholdEnable(bool pEnable);
00653 
00662     K_DEPRECATED bool GetForegroundMatteThresholdEnable() const;
00663 
00671     K_DEPRECATED void SetForegroundMatteThreshold(double pThreshold);
00672 
00680     K_DEPRECATED double GetForegroundMatteThreshold() const;
00681 
00688     typedef enum
00689     {
00690         eFIT = 1<<0,
00691         eCENTER = 1<<1,
00692         eKEEP_RATIO = 1<<2,
00693         eCROP = 1<<3
00694     } ECameraBackgroundPlacementOptions;
00695 
00699     K_DEPRECATED void SetBackgroundPlacementOptions(kUInt pOptions);
00700 
00704     kUInt GetBackgroundPlacementOptions() const;
00705 
00710     typedef enum
00711     {
00712         eRELATIVE_TO_INTEREST,
00713         eABSOLUTE_FROM_CAMERA
00714     } ECameraBackgroundDistanceMode;
00715 
00722     K_DEPRECATED void SetBackgroundDistanceMode(ECameraBackgroundDistanceMode pMode);
00723 
00730     K_DEPRECATED ECameraBackgroundDistanceMode GetBackgroundDistanceMode() const;
00731 
00739     K_DEPRECATED void SetBackgroundDistance(double pDistance);
00740 
00747     K_DEPRECATED double GetBackgroundDistance() const;
00748 
00750 
00757 
00764     K_DEPRECATED void SetViewCameraInterest(bool pEnable);
00765 
00772     K_DEPRECATED bool GetViewCameraInterest() const;
00773 
00780     K_DEPRECATED void SetViewNearFarPlanes(bool pEnable);
00781 
00788     K_DEPRECATED bool GetViewNearFarPlanes() const;
00789 
00796     K_DEPRECATED void SetShowGrid(bool pEnable);
00797 
00804     K_DEPRECATED bool GetShowGrid() const;
00805 
00812     K_DEPRECATED void SetShowAxis(bool pEnable);
00813 
00820     K_DEPRECATED bool GetShowAxis() const;
00821 
00828     K_DEPRECATED void SetShowName(bool pEnable);
00829 
00836     K_DEPRECATED bool GetShowName() const;
00837 
00844     K_DEPRECATED void SetShowInfoOnMoving(bool pEnable);
00845 
00852     K_DEPRECATED bool GetShowInfoOnMoving() const;
00853 
00860     K_DEPRECATED void SetShowTimeCode(bool pEnable);
00861 
00868     K_DEPRECATED bool GetShowTimeCode() const;
00869 
00876     K_DEPRECATED void SetDisplaySafeArea(bool pEnable);
00877 
00884     K_DEPRECATED bool GetDisplaySafeArea() const;
00885 
00892     K_DEPRECATED void SetDisplaySafeAreaOnRender(bool pEnable);
00893 
00900     K_DEPRECATED bool GetDisplaySafeAreaOnRender() const;
00901 
00906     typedef enum
00907     {
00908         eROUND = 0,
00909         eSQUARE = 1
00910     } ECameraSafeAreaStyle;
00911 
00918     K_DEPRECATED void SetSafeAreaStyle(ECameraSafeAreaStyle pStyle);
00919 
00926     K_DEPRECATED ECameraSafeAreaStyle GetSafeAreaStyle() const;
00927 
00934     K_DEPRECATED void SetShowAudio(bool pEnable);
00935 
00942     K_DEPRECATED bool GetShowAudio() const;
00943 
00950     K_DEPRECATED void SetAudioColor(const KFbxColor& pColor);
00951 
00958     K_DEPRECATED KFbxColor GetAudioColor() const;
00959 
00966     K_DEPRECATED void SetUseFrameColor(bool pEnable);
00967 
00974     K_DEPRECATED bool GetUseFrameColor() const;
00975 
00982     K_DEPRECATED void SetFrameColor(const KFbxColor& pColor);
00983 
00990     K_DEPRECATED KFbxColor GetFrameColor() const;
00991 
00993 
01000 
01005     typedef enum
01006     {
01007         eINTERACTIVE,
01008         eAT_RENDER
01009     } ECameraRenderOptionsUsageTime;
01010 
01019     K_DEPRECATED void SetRenderOptionsUsageTime(ECameraRenderOptionsUsageTime pUsageTime);
01020 
01029     K_DEPRECATED ECameraRenderOptionsUsageTime GetRenderOptionsUsageTime() const;
01030 
01037     K_DEPRECATED void SetUseAntialiasing(bool pEnable);
01038 
01045     K_DEPRECATED bool GetUseAntialiasing() const;
01046 
01053     K_DEPRECATED void SetAntialiasingIntensity(double pIntensity);
01054 
01061     K_DEPRECATED double GetAntialiasingIntensity() const;
01062 
01067     typedef enum
01068     {
01069         eOVERSAMPLING_ANTIALIASING,
01070         eHARDWARE_ANTIALIASING
01071     } ECameraAntialiasingMethod;
01072 
01079     K_DEPRECATED void SetAntialiasingMethod(ECameraAntialiasingMethod pMethod);
01080 
01087     K_DEPRECATED ECameraAntialiasingMethod GetAntialiasingMethod() const;
01088 
01096     K_DEPRECATED void SetNumberOfSamples(int pNumberOfSamples);
01097 
01105     K_DEPRECATED int GetNumberOfSamples() const;
01106 
01111     typedef enum
01112     {
01113         eUNIFORM,
01114         eSTOCHASTIC
01115     } ECameraSamplingType;
01116 
01124     K_DEPRECATED void SetSamplingType(ECameraSamplingType pType);
01125 
01133     K_DEPRECATED ECameraSamplingType GetSamplingType() const;
01134 
01141     K_DEPRECATED void SetUseAccumulationBuffer(bool pUseAccumulationBuffer);
01142 
01149     K_DEPRECATED bool GetUseAccumulationBuffer() const;
01150 
01157     K_DEPRECATED void SetUseDepthOfField(bool pUseDepthOfField);
01158 
01165     K_DEPRECATED bool GetUseDepthOfField() const;
01166 
01171     typedef enum
01172     {
01173         eCAMERA_INTEREST,
01174         eSPECIFIC_DISTANCE
01175     } ECameraFocusDistanceSource;
01176 
01183     K_DEPRECATED void SetFocusDistanceSource(ECameraFocusDistanceSource pSource);
01184 
01191     K_DEPRECATED ECameraFocusDistanceSource GetFocusDistanceSource() const;
01192 
01200     K_DEPRECATED void SetSpecificDistance(double pDistance);
01201 
01209     K_DEPRECATED double GetSpecificDistance() const;
01210 
01217     K_DEPRECATED void SetFocusAngle(double pAngle);
01218 
01225     K_DEPRECATED double GetFocusAngle() const;
01226 
01228 
01236 
01249     K_DEPRECATED void SetDefaultFieldOfView(double pFieldOfView);
01250 
01261     K_DEPRECATED double GetDefaultFieldOfView() const;
01262 
01273     K_DEPRECATED void SetDefaultFieldOfViewX(double pFieldOfViewX);
01274 
01284     K_DEPRECATED double GetDefaultFieldOfViewX() const;
01285 
01295     K_DEPRECATED void SetDefaultFieldOfViewY(double pFieldOfViewY);
01296 
01306     K_DEPRECATED double GetDefaultFieldOfViewY() const;
01307 
01317     K_DEPRECATED void SetDefaultOpticalCenterX(double pOpticalCenterX);
01318 
01327     K_DEPRECATED double GetDefaultOpticalCenterX() const;
01328 
01337     K_DEPRECATED void SetDefaultOpticalCenterY(double pOpticalCenterY);
01338 
01348     K_DEPRECATED double GetDefaultOpticalCenterY() const;
01349 
01359     K_DEPRECATED void SetDefaultFocalLength(double pFocalLength);
01360 
01371     K_DEPRECATED double GetDefaultFocalLength() const;
01372 
01380     K_DEPRECATED void SetDefaultRoll(double pRoll);
01381 
01389     K_DEPRECATED double GetDefaultRoll() const;
01390 
01398     K_DEPRECATED void SetDefaultTurnTable(double pTurnTable);
01399 
01407     K_DEPRECATED double GetDefaultTurnTable() const;
01408 
01416     K_DEPRECATED void SetDefaultBackgroundColor(const KFbxColor& pColor);
01417 
01425     K_DEPRECATED KFbxColor GetDefaultBackgroundColor() const;
01426 
01428 
01434 
01441     K_DEPRECATED void SetBackgroundColor(const KFbxColor& pColor);
01442 
01448     K_DEPRECATED KFbxColor GetBackgroundColor() const;
01449 
01456     K_DEPRECATED void SetAngleOfView(double pAngleOfView);
01457 
01463     K_DEPRECATED double GetAngleOfView() const;
01464 
01470     K_DEPRECATED void SetFocalLength(double pFocalLength);
01471 
01476     K_DEPRECATED double GetFocalLength() const;
01477 
01479 
01480     //The background texture is now in the property called BackgroundTexture
01481     K_DEPRECATED void SetBackgroundTexture(KFbxTexture* pTexture);
01482 
01487 
01497     bool IsBoundingBoxInView( const KFbxMatrix& pWorldToScreen, 
01498                              const KFbxMatrix& pWorldToCamera, 
01499                              const KFbxVector4 pPoints[8] ) const;
01500 
01509     bool IsPointInView( const KFbxMatrix& pWorldToScreen, const KFbxMatrix& pWorldToCamera, const KFbxVector4& pPoint ) const;
01510 
01517     KFbxMatrix ComputeWorldToScreen(int pPixelWidth, int pPixelHeight, const KFbxXMatrix& pWorldToCamera) const;
01518 
01529     KFbxMatrix ComputePerspective( int pPixelWidth, int pPixelHeight, bool pIncludePostPerspective ) const;
01530 
01532 
01534     //
01535     // Properties
01536     //
01538 
01539     // -----------------------------------------------------------------------
01540     // Geometrical
01541     // -----------------------------------------------------------------------
01542 
01550     KFbxTypedProperty<fbxDouble3>                       Position;
01551 
01559     KFbxTypedProperty<fbxDouble3>                       UpVector;
01560 
01572     KFbxTypedProperty<fbxDouble3>                       InterestPosition;
01573 
01581     KFbxTypedProperty<fbxDouble1>                       Roll;
01582 
01593     KFbxTypedProperty<fbxDouble1>                       OpticalCenterX;
01594 
01605     KFbxTypedProperty<fbxDouble1>                       OpticalCenterY;
01606 
01614     KFbxTypedProperty<fbxDouble3>                       BackgroundColor;
01615 
01623     KFbxTypedProperty<fbxDouble1>                       TurnTable;
01624 
01633     KFbxTypedProperty<fbxBool1>                         DisplayTurnTableIcon;
01634 
01635     // -----------------------------------------------------------------------
01636     // Motion Blur
01637     // -----------------------------------------------------------------------
01638 
01647     KFbxTypedProperty<fbxBool1>                         UseMotionBlur;
01648 
01657     KFbxTypedProperty<fbxBool1>                         UseRealTimeMotionBlur;
01658 
01666     KFbxTypedProperty<fbxDouble1>                       MotionBlurIntensity;
01667 
01668     // -----------------------------------------------------------------------
01669     // Optical
01670     // -----------------------------------------------------------------------
01671 
01680     KFbxTypedProperty<ECameraAspectRatioMode>           AspectRatioMode;
01681 
01689     KFbxTypedProperty<fbxDouble1>                       AspectWidth;
01690 
01698     KFbxTypedProperty<fbxDouble1>                       AspectHeight;
01699 
01707     KFbxTypedProperty<fbxDouble1>                       PixelAspectRatio;
01708 
01713     KFbxTypedProperty<ECameraApertureMode>              ApertureMode;
01714 
01722     KFbxTypedProperty<ECameraGateFit>                   GateFit;
01723 
01735     KFbxTypedProperty<fbxDouble1>                       FieldOfView;
01736 
01737 
01749     KFbxTypedProperty<fbxDouble1>                       FieldOfViewX;
01750 
01762     KFbxTypedProperty<fbxDouble1>                       FieldOfViewY;
01763 
01771     KFbxTypedProperty<fbxDouble1>                       FocalLength;
01772 
01782     KFbxTypedProperty<ECameraFormat>                    CameraFormat;
01783 
01784     // -----------------------------------------------------------------------
01785     // Frame
01786     // -----------------------------------------------------------------------
01787 
01796     KFbxTypedProperty<fbxBool1>                         UseFrameColor;
01797 
01805     KFbxTypedProperty<fbxDouble3>                       FrameColor;
01806 
01807     // -----------------------------------------------------------------------
01808     // On Screen Display
01809     // -----------------------------------------------------------------------
01810 
01818     KFbxTypedProperty<fbxBool1>                         ShowName;
01819 
01827     KFbxTypedProperty<fbxBool1>                         ShowInfoOnMoving;
01828 
01836     KFbxTypedProperty<fbxBool1>                         ShowGrid;
01837 
01845     KFbxTypedProperty<fbxBool1>                         ShowOpticalCenter;
01846 
01854     KFbxTypedProperty<fbxBool1>                         ShowAzimut;
01855 
01863     KFbxTypedProperty<fbxBool1>                         ShowTimeCode;
01864 
01872     KFbxTypedProperty<fbxBool1>                         ShowAudio;
01873 
01881     KFbxTypedProperty<fbxDouble3>                       AudioColor;
01882 
01883     // -----------------------------------------------------------------------
01884     // Clipping Planes
01885     // -----------------------------------------------------------------------
01886 
01894     KFbxTypedProperty<fbxDouble1>                       NearPlane;
01895 
01903     KFbxTypedProperty<fbxDouble1>                       FarPlane;
01904 
01905 
01914     KFbxTypedProperty<fbxBool1>                         AutoComputeClipPlanes;
01915 
01916 
01917     // -----------------------------------------------------------------------
01918     // Camera Film Setting
01919     // -----------------------------------------------------------------------
01920 
01929     KFbxTypedProperty<fbxDouble1>                       FilmWidth;
01930 
01939     KFbxTypedProperty<fbxDouble1>                       FilmHeight;
01940 
01948     KFbxTypedProperty<fbxDouble1>                       FilmAspectRatio;
01949 
01958     KFbxTypedProperty<fbxDouble1>                       FilmSqueezeRatio;
01959 
01967     KFbxTypedProperty<ECameraApertureFormat>            FilmFormat;
01968 
01977     KFbxTypedProperty<fbxDouble2>                       FilmOffset;
01978 
01979 
01980     // -----------------------------------------------------------------------
01981     // Camera View Widget Option
01982     // -----------------------------------------------------------------------
01983 
01991     KFbxTypedProperty<fbxBool1>                         ViewFrustum;
01992 
02000     KFbxTypedProperty<fbxBool1>                         ViewFrustumNearFarPlane;
02001 
02009     KFbxTypedProperty<ECameraBackgroundDisplayMode>     ViewFrustumBackPlaneMode;
02010 
02018     KFbxTypedProperty<fbxDouble1>                       BackPlaneDistance;
02019 
02027     KFbxTypedProperty<ECameraBackgroundDistanceMode>    BackPlaneDistanceMode;
02028 
02036     KFbxTypedProperty<fbxBool1>                         ViewCameraToLookAt;
02037 
02038     // -----------------------------------------------------------------------
02039     // Camera Lock Mode
02040     // -----------------------------------------------------------------------
02041 
02049     KFbxTypedProperty<fbxBool1>                         LockMode;
02050 
02058     KFbxTypedProperty<fbxBool1>                         LockInterestNavigation;
02059 
02060     // -----------------------------------------------------------------------
02061     // Background Image Display Options
02062     // -----------------------------------------------------------------------
02063 
02071     KFbxTypedProperty<fbxBool1>                         FitImage;
02072 
02077     KFbxTypedProperty<fbxBool1>                         Crop;
02078 
02086     KFbxTypedProperty<fbxBool1>                         Center;
02087 
02095     KFbxTypedProperty<fbxBool1>                         KeepRatio;
02096 
02104     KFbxTypedProperty<ECameraBackgroundDrawingMode>     BackgroundMode;
02105 
02113     KFbxTypedProperty<fbxDouble1>                       BackgroundAlphaTreshold;
02114 
02115     // -----------------------------------------------------------------------
02116     // Foreground Image Display Options
02117     // -----------------------------------------------------------------------
02118 
02126     KFbxTypedProperty<fbxBool1> FrontPlateFitImage;
02127 
02135     KFbxTypedProperty<fbxBool1> FrontPlateCrop;
02136 
02144     KFbxTypedProperty<fbxBool1> FrontPlateCenter;
02145 
02153     KFbxTypedProperty<fbxBool1> FrontPlateKeepRatio;
02154 
02155 
02164     KFbxTypedProperty<fbxBool1> ShowFrontPlate;
02165 
02173     KFbxTypedProperty<ECameraBackgroundDisplayMode>     ViewFrustumFrontPlaneMode;
02174 
02182     KFbxTypedProperty<fbxDouble1>                       FrontPlaneDistance;
02183 
02191     KFbxTypedProperty<ECameraBackgroundDistanceMode>    FrontPlaneDistanceMode;
02192 
02200     KFbxTypedProperty<fbxDouble1> ForegroundAlpha;
02201 
02202 
02210     KFbxTypedProperty<fbxReference> ForegroundTexture;
02211 
02219     KFbxTypedProperty<fbxReference> BackgroundTexture;
02220 
02221 
02222     // -----------------------------------------------------------------------
02223     // Safe Area
02224     // -----------------------------------------------------------------------
02225 
02233     KFbxTypedProperty<fbxBool1>                         DisplaySafeArea;
02234 
02242     KFbxTypedProperty<fbxBool1>                         DisplaySafeAreaOnRender;
02243 
02251     KFbxTypedProperty<ECameraSafeAreaStyle>             SafeAreaDisplayStyle;
02252 
02260     KFbxTypedProperty<fbxDouble1>                       SafeAreaAspectRatio;
02261 
02262     // -----------------------------------------------------------------------
02263     // 2D Magnifier
02264     // -----------------------------------------------------------------------
02265 
02273     KFbxTypedProperty<fbxBool1>                         Use2DMagnifierZoom;
02274 
02282     KFbxTypedProperty<fbxDouble1>                       _2DMagnifierZoom;
02283 
02291     KFbxTypedProperty<fbxDouble1>                       _2DMagnifierX;
02292 
02300     KFbxTypedProperty<fbxDouble1>                       _2DMagnifierY;
02301 
02302     // -----------------------------------------------------------------------
02303     // Projection Type: Ortho, Perspective
02304     // -----------------------------------------------------------------------
02305 
02313     KFbxTypedProperty<ECameraProjectionType>            ProjectionType;
02314 
02322     KFbxTypedProperty<fbxDouble1>                       OrthoZoom;
02323 
02324     // -----------------------------------------------------------------------
02325     // Depth Of Field & Anti Aliasing
02326     // -----------------------------------------------------------------------
02327 
02335     KFbxTypedProperty<fbxBool1>                         UseRealTimeDOFAndAA;
02336 
02344     KFbxTypedProperty<fbxBool1>                         UseDepthOfField;
02345 
02353     KFbxTypedProperty<ECameraFocusDistanceSource>       FocusSource;
02354 
02362     KFbxTypedProperty<fbxDouble1>                       FocusAngle;
02363 
02371     KFbxTypedProperty<fbxDouble1>                       FocusDistance;
02372 
02380     KFbxTypedProperty<fbxBool1>                         UseAntialiasing;
02381 
02389     KFbxTypedProperty<fbxDouble1>                       AntialiasingIntensity;
02390 
02398     KFbxTypedProperty<ECameraAntialiasingMethod>        AntialiasingMethod;
02399 
02400     // -----------------------------------------------------------------------
02401     // Accumulation Buffer
02402     // -----------------------------------------------------------------------
02403 
02411     KFbxTypedProperty<fbxBool1>                         UseAccumulationBuffer;
02412 
02420     KFbxTypedProperty<fbxInteger1>                      FrameSamplingCount;
02421 
02429     KFbxTypedProperty<ECameraSamplingType>              FrameSamplingType;
02430 
02432 //
02433 //  WARNING!
02434 //
02435 //  Anything beyond these lines may not be documented accurately and is
02436 //  subject to change without notice.
02437 //
02439 
02440 #ifndef DOXYGEN_SHOULD_SKIP_THIS
02441 
02442     friend class KFbxGlobalCameraSettings;
02443 
02444 public:
02445 
02446     // Clone
02447     virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
02448 
02449 protected:
02450 
02452     KFbxCamera& operator=(KFbxCamera const& pCamera);
02453 
02454     KFbxCamera(KFbxSdkManager& pManager, char const* pName);
02455     virtual ~KFbxCamera ();
02456 
02457     virtual void Construct(const KFbxCamera* pFrom);
02458     virtual bool ConstructProperties(bool pForceSet);
02459     virtual void Destruct(bool pRecursive, bool pDependents);
02460 
02464     virtual KString     GetTypeName() const;
02465     virtual KStringList GetTypeFlags() const;
02466 
02467 private:
02468 
02469     double ComputePixelRatio(kUInt pWidth, kUInt pHeight, double pScreenRatio = 1.3333333333);
02470 
02471     // Background Properties
02472     KString mBackgroundMediaName;
02473     KString mBackgroundFileName;
02474 
02475     friend class KFbxNode;
02476 
02477 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
02478 
02479 };
02480 
02481 typedef KFbxCamera* HKFbxCamera;
02482 
02483 inline EFbxType FbxTypeOf( KFbxCamera::ECameraAntialiasingMethod const &pItem )         { return eENUM; }
02484 inline EFbxType FbxTypeOf( KFbxCamera::ECameraApertureFormat const &pItem )             { return eENUM; }
02485 inline EFbxType FbxTypeOf( KFbxCamera::ECameraApertureMode const &pItem )               { return eENUM; }
02486 inline EFbxType FbxTypeOf( KFbxCamera::ECameraAspectRatioMode const &pItem )            { return eENUM; }
02487 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundDisplayMode const &pItem )      { return eENUM; }
02488 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundDistanceMode const &pItem )     { return eENUM; }
02489 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundDrawingMode const &pItem )      { return eENUM; }
02490 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundPlacementOptions const &pItem ) { return eENUM; }
02491 inline EFbxType FbxTypeOf( KFbxCamera::ECameraFocusDistanceSource const &pItem )        { return eENUM; }
02492 inline EFbxType FbxTypeOf( KFbxCamera::ECameraFormat const &pItem )                     { return eENUM; }
02493 inline EFbxType FbxTypeOf( KFbxCamera::ECameraGateFit const &pItem )                    { return eENUM; }
02494 inline EFbxType FbxTypeOf( KFbxCamera::ECameraProjectionType const &pItem )             { return eENUM; }
02495 inline EFbxType FbxTypeOf( KFbxCamera::ECameraRenderOptionsUsageTime const &pItem )     { return eENUM; }
02496 inline EFbxType FbxTypeOf( KFbxCamera::ECameraSafeAreaStyle const &pItem )              { return eENUM; }
02497 inline EFbxType FbxTypeOf( KFbxCamera::ECameraSamplingType const &pItem )               { return eENUM; }
02498 
02499 #include <fbxfilesdk/fbxfilesdk_nsend.h>
02500 
02501 #endif // FBXFILESDK_KFBXPLUGINS_KFBXCAMERA_H
02502