FBX SDK Reference Guide: kfbxcamera.h Source File
Go to the documentation of this file.
00001 
00004 #ifndef _FBXSDK_CAMERA_H_
00005 #define _FBXSDK_CAMERA_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 <kaydaradef.h>
00043 #ifndef KFBX_DLL
00044     #define KFBX_DLL K_DLLIMPORT
00045 #endif
00046 
00047 #include <kaydara.h>
00048 
00049 #include <kfbxplugins/kfbxnodeattribute.h>
00050 #include <kfbxplugins/kfbxcolor.h>
00051 
00052 #include <kfbxmath/kfbxvector4.h>
00053 
00054 #include <klib/kstring.h>
00055 
00056 #ifdef KARCH_DEV_MACOSX_CFM
00057     #include <CFURL.h>
00058     #include <Files.h>
00059 #endif
00060 
00061 #include <fbxfilesdk_nsbegin.h>
00062 
00063 class KFbxTexture;
00064 class KFbxSdkManager;
00065 class KFbxMatrix;
00066 class KFbxXMatrix;
00067 class KTime;
00068 
00076 class KFBX_DLL KFbxCamera : public KFbxNodeAttribute
00077 {
00078     KFBXOBJECT_DECLARE(KFbxCamera,KFbxNodeAttribute);
00079 
00080 public:
00082     virtual EAttributeType GetAttributeType() const;
00083 
00085     void Reset();
00086 
00091 
00099     K_DEPRECATED void SetPosition(const KFbxVector4& pPosition);
00100 
00108     K_DEPRECATED KFbxVector4 GetPosition() const;
00109 
00116     K_DEPRECATED void SetUpVector(const KFbxVector4& pVector);
00117 
00124     K_DEPRECATED KFbxVector4 GetUpVector() const;
00125 
00135     K_DEPRECATED void SetDefaultCameraInterestPosition(const KFbxVector4& pPosition);
00136 
00146     K_DEPRECATED KFbxVector4 GetDefaultCameraInterestPosition() const;
00147 
00154     K_DEPRECATED void SetRoll(double pRoll);
00155 
00162     K_DEPRECATED double GetRoll() const;
00163 
00170     K_DEPRECATED void SetTurnTable(double pTurnTable);
00171 
00178     K_DEPRECATED double GetTurnTable() const;
00179 
00193     typedef enum
00194     {
00195         ePERSPECTIVE,
00196         eORTHOGONAL
00197     } ECameraProjectionType;
00198 
00205     K_DEPRECATED void SetProjectionType(ECameraProjectionType pProjectionType);
00206 
00213     K_DEPRECATED ECameraProjectionType GetProjectionType() const;
00214 
00216 
00221 
00235     typedef enum
00236     {
00237         eCUSTOM_FORMAT,
00238         eD1_NTSC,
00239         eNTSC,
00240         ePAL,
00241         eD1_PAL,
00242         eHD,
00243         e640x480,
00244         e320x200,
00245         e320x240,
00246         e128x128,
00247         eFULL_SCREEN
00248     } ECameraFormat;
00249 
00256     void SetFormat(ECameraFormat pFormat);
00257 
00261     ECameraFormat GetFormat() const;
00262 
00270     typedef enum
00271     {
00272         eWINDOW_SIZE,
00273         eFIXED_RATIO,
00274         eFIXED_RESOLUTION,
00275         eFIXED_WIDTH,
00276         eFIXED_HEIGHT
00277     } ECameraAspectRatioMode;
00278 
00290     void SetAspect(ECameraAspectRatioMode pRatioMode, double pWidth, double pHeight);
00291 
00295     ECameraAspectRatioMode GetAspectRatioMode() const;
00296 
00303     K_DEPRECATED double GetAspectWidth() const;
00304 
00311     K_DEPRECATED double GetAspectHeight() const;
00312 
00318     void SetPixelRatio(double pRatio);
00319 
00323     double GetPixelRatio() const;
00324 
00331     void SetNearPlane(double pDistance);
00332 
00337     double GetNearPlane() const;
00338 
00345     void SetFarPlane(double pDistance);
00346 
00351     double GetFarPlane() const;
00352 
00361     K_DEPRECATED void SetMouseLock(bool pMouseLock);
00362 
00371     K_DEPRECATED bool GetMouseLock() const;
00372 
00374 
00384 
00399     typedef enum
00400     {
00401         eCUSTOM_APERTURE_FORMAT = 0,
00402         e16MM_THEATRICAL,
00403         eSUPER_16MM,
00404         e35MM_ACADEMY,
00405         e35MM_TV_PROJECTION,
00406         e35MM_FULL_APERTURE,
00407         e35MM_185_PROJECTION,
00408         e35MM_ANAMORPHIC,
00409         e70MM_PROJECTION,
00410         eVISTAVISION,
00411         eDYNAVISION,
00412         eIMAX
00413     } ECameraApertureFormat;
00414 
00419     void SetApertureFormat(ECameraApertureFormat pFormat);
00420 
00424     ECameraApertureFormat GetApertureFormat() const;
00425 
00434     typedef enum
00435     {
00436         eHORIZONTAL_AND_VERTICAL,
00437         eHORIZONTAL,
00438         eVERTICAL,
00439         eFOCAL_LENGTH
00440     } ECameraApertureMode;
00441 
00445     void SetApertureMode(ECameraApertureMode pMode);
00446 
00450     ECameraApertureMode GetApertureMode() const;
00451 
00457     void SetApertureWidth(double pWidth);
00458 
00462     double GetApertureWidth() const;
00463 
00469     void SetApertureHeight(double pHeight);
00470 
00474     double GetApertureHeight() const;
00475 
00481     void SetSqueezeRatio(double pRatio);
00482 
00486     double GetSqueezeRatio() const;
00487 
00495     K_DEPRECATED void SetOrthoZoom(const double& pOrthoZoom);
00496 
00503     K_DEPRECATED double GetOrthoZoom() const;
00504 
00514     typedef enum
00515     {
00516         eNO_FIT,
00517         eVERTICAL_FIT,
00518         eHORIZONTAL_FIT,
00519         eFILL_FIT,
00520         eOVERSCAN_FIT,
00521         eSTRETCH_FIT
00522     } ECameraGateFit;
00523 
00530     K_DEPRECATED void SetGateFit(const ECameraGateFit pGateFit);
00531 
00538     K_DEPRECATED ECameraGateFit GetGateFit() const;
00539 
00544     double ComputeFieldOfView(double pFocalLength) const;
00545 
00550     double ComputeFocalLength(double pAngleOfView);
00552 
00557 
00562     void SetBackgroundFileName(const char* pFileName);
00563 
00564 #ifdef KARCH_DEV_MACOSX_CFM
00565     bool SetBackgroundFile(const FSSpec &pMacFileSpec);
00566     bool SetBackgroundFile(const FSRef &pMacFileRef);
00567     bool SetBackgroundFile(const CFURLRef &pMacURL);
00568 #endif
00569 
00573     char const* GetBackgroundFileName() const;
00574 
00575 #ifdef KARCH_DEV_MACOSX_CFM
00576     bool GetBackgroundFile(FSSpec &pMacFileSpec) const;
00577     bool GetBackgroundFile(FSRef &pMacFileRef) const;
00578     bool GetBackgroundFile(CFURLRef &pMacURL) const;
00579 #endif
00580 
00585     void SetBackgroundMediaName(const char* pFileName);
00586 
00590     char const* GetBackgroundMediaName() const;
00591 
00597     typedef enum
00598     {
00599         eDISABLED,
00600         eALWAYS,
00601         eWHEN_MEDIA
00602     } ECameraBackgroundDisplayMode;
00603 
00610     K_DEPRECATED void SetBackgroundDisplayMode(ECameraBackgroundDisplayMode pMode);
00611 
00618     K_DEPRECATED ECameraBackgroundDisplayMode GetBackgroundDisplayMode() const;
00619 
00625     typedef enum
00626     {
00627         eBACKGROUND,
00628         eFOREGROUND,
00629         eBACKGROUND_AND_FOREGROUND
00630     } ECameraBackgroundDrawingMode;
00631 
00638     K_DEPRECATED void SetBackgroundDrawingMode(ECameraBackgroundDrawingMode pMode);
00639 
00646     K_DEPRECATED ECameraBackgroundDrawingMode GetBackgroundDrawingMode() const;
00647 
00656     K_DEPRECATED void SetForegroundMatteThresholdEnable(bool pEnable);
00657 
00666     K_DEPRECATED bool GetForegroundMatteThresholdEnable() const;
00667 
00675     K_DEPRECATED void SetForegroundMatteThreshold(double pThreshold);
00676 
00684     K_DEPRECATED double GetForegroundMatteThreshold() const;
00685 
00692     typedef enum
00693     {
00694         eFIT = 1<<0,
00695         eCENTER = 1<<1,
00696         eKEEP_RATIO = 1<<2,
00697         eCROP = 1<<3
00698     } ECameraBackgroundPlacementOptions;
00699 
00703     K_DEPRECATED void SetBackgroundPlacementOptions(kUInt pOptions);
00704 
00708     kUInt GetBackgroundPlacementOptions() const;
00709 
00714     typedef enum
00715     {
00716         eRELATIVE_TO_INTEREST,
00717         eABSOLUTE_FROM_CAMERA
00718     } ECameraBackgroundDistanceMode;
00719 
00726     K_DEPRECATED void SetBackgroundDistanceMode(ECameraBackgroundDistanceMode pMode);
00727 
00734     K_DEPRECATED ECameraBackgroundDistanceMode GetBackgroundDistanceMode() const;
00735 
00743     K_DEPRECATED void SetBackgroundDistance(double pDistance);
00744 
00751     K_DEPRECATED double GetBackgroundDistance() const;
00752 
00754 
00761 
00768     K_DEPRECATED void SetViewCameraInterest(bool pEnable);
00769 
00776     K_DEPRECATED bool GetViewCameraInterest() const;
00777 
00784     K_DEPRECATED void SetViewNearFarPlanes(bool pEnable);
00785 
00792     K_DEPRECATED bool GetViewNearFarPlanes() const;
00793 
00800     K_DEPRECATED void SetShowGrid(bool pEnable);
00801 
00808     K_DEPRECATED bool GetShowGrid() const;
00809 
00816     K_DEPRECATED void SetShowAxis(bool pEnable);
00817 
00824     K_DEPRECATED bool GetShowAxis() const;
00825 
00832     K_DEPRECATED void SetShowName(bool pEnable);
00833 
00840     K_DEPRECATED bool GetShowName() const;
00841 
00848     K_DEPRECATED void SetShowInfoOnMoving(bool pEnable);
00849 
00856     K_DEPRECATED bool GetShowInfoOnMoving() const;
00857 
00864     K_DEPRECATED void SetShowTimeCode(bool pEnable);
00865 
00872     K_DEPRECATED bool GetShowTimeCode() const;
00873 
00880     K_DEPRECATED void SetDisplaySafeArea(bool pEnable);
00881 
00888     K_DEPRECATED bool GetDisplaySafeArea() const;
00889 
00896     K_DEPRECATED void SetDisplaySafeAreaOnRender(bool pEnable);
00897 
00904     K_DEPRECATED bool GetDisplaySafeAreaOnRender() const;
00905 
00910     typedef enum
00911     {
00912         eROUND = 0,
00913         eSQUARE = 1
00914     } ECameraSafeAreaStyle;
00915 
00922     K_DEPRECATED void SetSafeAreaStyle(ECameraSafeAreaStyle pStyle);
00923 
00930     K_DEPRECATED ECameraSafeAreaStyle GetSafeAreaStyle() const;
00931 
00938     K_DEPRECATED void SetShowAudio(bool pEnable);
00939 
00946     K_DEPRECATED bool GetShowAudio() const;
00947 
00954     K_DEPRECATED void SetAudioColor(const KFbxColor& pColor);
00955 
00962     K_DEPRECATED KFbxColor GetAudioColor() const;
00963 
00970     K_DEPRECATED void SetUseFrameColor(bool pEnable);
00971 
00978     K_DEPRECATED bool GetUseFrameColor() const;
00979 
00986     K_DEPRECATED void SetFrameColor(const KFbxColor& pColor);
00987 
00994     K_DEPRECATED KFbxColor GetFrameColor() const;
00995 
00997 
01004 
01009     typedef enum
01010     {
01011         eINTERACTIVE,
01012         eAT_RENDER
01013     } ECameraRenderOptionsUsageTime;
01014 
01023     K_DEPRECATED void SetRenderOptionsUsageTime(ECameraRenderOptionsUsageTime pUsageTime);
01024 
01033     K_DEPRECATED ECameraRenderOptionsUsageTime GetRenderOptionsUsageTime() const;
01034 
01041     K_DEPRECATED void SetUseAntialiasing(bool pEnable);
01042 
01049     K_DEPRECATED bool GetUseAntialiasing() const;
01050 
01057     K_DEPRECATED void SetAntialiasingIntensity(double pIntensity);
01058 
01065     K_DEPRECATED double GetAntialiasingIntensity() const;
01066 
01071     typedef enum
01072     {
01073         eOVERSAMPLING_ANTIALIASING,
01074         eHARDWARE_ANTIALIASING
01075     } ECameraAntialiasingMethod;
01076 
01083     K_DEPRECATED void SetAntialiasingMethod(ECameraAntialiasingMethod pMethod);
01084 
01091     K_DEPRECATED ECameraAntialiasingMethod GetAntialiasingMethod() const;
01092 
01100     K_DEPRECATED void SetNumberOfSamples(int pNumberOfSamples);
01101 
01109     K_DEPRECATED int GetNumberOfSamples() const;
01110 
01115     typedef enum
01116     {
01117         eUNIFORM,
01118         eSTOCHASTIC
01119     } ECameraSamplingType;
01120 
01128     K_DEPRECATED void SetSamplingType(ECameraSamplingType pType);
01129 
01137     K_DEPRECATED ECameraSamplingType GetSamplingType() const;
01138 
01145     K_DEPRECATED void SetUseAccumulationBuffer(bool pUseAccumulationBuffer);
01146 
01153     K_DEPRECATED bool GetUseAccumulationBuffer() const;
01154 
01161     K_DEPRECATED void SetUseDepthOfField(bool pUseDepthOfField);
01162 
01169     K_DEPRECATED bool GetUseDepthOfField() const;
01170 
01175     typedef enum
01176     {
01177         eCAMERA_INTEREST,
01178         eSPECIFIC_DISTANCE
01179     } ECameraFocusDistanceSource;
01180 
01187     K_DEPRECATED void SetFocusDistanceSource(ECameraFocusDistanceSource pSource);
01188 
01195     K_DEPRECATED ECameraFocusDistanceSource GetFocusDistanceSource() const;
01196 
01204     K_DEPRECATED void SetSpecificDistance(double pDistance);
01205 
01213     K_DEPRECATED double GetSpecificDistance() const;
01214 
01221     K_DEPRECATED void SetFocusAngle(double pAngle);
01222 
01229     K_DEPRECATED double GetFocusAngle() const;
01230 
01232 
01240 
01253     K_DEPRECATED void SetDefaultFieldOfView(double pFieldOfView);
01254 
01265     K_DEPRECATED double GetDefaultFieldOfView() const;
01266 
01277     K_DEPRECATED void SetDefaultFieldOfViewX(double pFieldOfViewX);
01278 
01288     K_DEPRECATED double GetDefaultFieldOfViewX() const;
01289 
01299     K_DEPRECATED void SetDefaultFieldOfViewY(double pFieldOfViewY);
01300 
01310     K_DEPRECATED double GetDefaultFieldOfViewY() const;
01311 
01321     K_DEPRECATED void SetDefaultOpticalCenterX(double pOpticalCenterX);
01322 
01331     K_DEPRECATED double GetDefaultOpticalCenterX() const;
01332 
01341     K_DEPRECATED void SetDefaultOpticalCenterY(double pOpticalCenterY);
01342 
01352     K_DEPRECATED double GetDefaultOpticalCenterY() const;
01353 
01363     K_DEPRECATED void SetDefaultFocalLength(double pFocalLength);
01364 
01375     K_DEPRECATED double GetDefaultFocalLength() const;
01376 
01384     K_DEPRECATED void SetDefaultRoll(double pRoll);
01385 
01393     K_DEPRECATED double GetDefaultRoll() const;
01394 
01402     K_DEPRECATED void SetDefaultTurnTable(double pTurnTable);
01403 
01411     K_DEPRECATED double GetDefaultTurnTable() const;
01412 
01420     K_DEPRECATED void SetDefaultBackgroundColor(const KFbxColor& pColor);
01421 
01429     K_DEPRECATED KFbxColor GetDefaultBackgroundColor() const;
01430 
01432 
01438 
01444     K_DEPRECATED void SetBackgroundColor(const KFbxColor& pColor);
01445 
01451     K_DEPRECATED KFbxColor GetBackgroundColor() const;
01452 
01459     K_DEPRECATED void SetAngleOfView(double pAngleOfView);
01460 
01466     K_DEPRECATED double GetAngleOfView() const;
01467 
01473     K_DEPRECATED void SetFocalLength(double pFocalLength);
01474 
01479     K_DEPRECATED double GetFocalLength() const;
01480 
01482 
01483     //The background texture is now in the property called BackgroundTexture
01484     K_DEPRECATED void SetBackgroundTexture(KFbxTexture* pTexture);
01485 
01490 
01500     bool IsBoundingBoxInView( const KFbxMatrix& pWorldToScreen, 
01501                              const KFbxMatrix& pWorldToCamera, 
01502                              const KFbxVector4 pPoints[8] ) const;
01503 
01512     bool IsPointInView( const KFbxMatrix& pWorldToScreen, const KFbxMatrix& pWorldToCamera, const KFbxVector4& pPoint ) const;
01513 
01520     KFbxMatrix ComputeWorldToScreen(int pPixelWidth, int pPixelHeight, const KFbxXMatrix& pWorldToCamera) const;
01521 
01532     KFbxMatrix ComputePerspective( int pPixelWidth, int pPixelHeight, bool pIncludePostPerspective ) const;
01533 
01535 
01537     //
01538     // Properties
01539     //
01541 
01542     // -----------------------------------------------------------------------
01543     // Geometrical
01544     // -----------------------------------------------------------------------
01545 
01553     KFbxTypedProperty<fbxDouble3>                       Position;
01554 
01562     KFbxTypedProperty<fbxDouble3>                       UpVector;
01563 
01575     KFbxTypedProperty<fbxDouble3>                       InterestPosition;
01576 
01584     KFbxTypedProperty<fbxDouble1>                       Roll;
01585 
01596     KFbxTypedProperty<fbxDouble1>                       OpticalCenterX;
01597 
01608     KFbxTypedProperty<fbxDouble1>                       OpticalCenterY;
01609 
01617     KFbxTypedProperty<fbxDouble3>                       BackgroundColor;
01618 
01626     KFbxTypedProperty<fbxDouble1>                       TurnTable;
01627 
01636     KFbxTypedProperty<fbxBool1>                         DisplayTurnTableIcon;
01637 
01638     // -----------------------------------------------------------------------
01639     // Motion Blur
01640     // -----------------------------------------------------------------------
01641 
01650     KFbxTypedProperty<fbxBool1>                         UseMotionBlur;
01651 
01660     KFbxTypedProperty<fbxBool1>                         UseRealTimeMotionBlur;
01661 
01669     KFbxTypedProperty<fbxDouble1>                       MotionBlurIntensity;
01670 
01671     // -----------------------------------------------------------------------
01672     // Optical
01673     // -----------------------------------------------------------------------
01674 
01683     KFbxTypedProperty<ECameraAspectRatioMode>           AspectRatioMode;
01684 
01692     KFbxTypedProperty<fbxDouble1>                       AspectWidth;
01693 
01701     KFbxTypedProperty<fbxDouble1>                       AspectHeight;
01702 
01710     KFbxTypedProperty<fbxDouble1>                       PixelAspectRatio;
01711 
01716     KFbxTypedProperty<ECameraApertureMode>              ApertureMode;
01717 
01725     KFbxTypedProperty<ECameraGateFit>                   GateFit;
01726 
01738     KFbxTypedProperty<fbxDouble1>                       FieldOfView;
01739 
01740 
01752     KFbxTypedProperty<fbxDouble1>                       FieldOfViewX;
01753 
01765     KFbxTypedProperty<fbxDouble1>                       FieldOfViewY;
01766 
01774     KFbxTypedProperty<fbxDouble1>                       FocalLength;
01775 
01785     KFbxTypedProperty<ECameraFormat>                    CameraFormat;
01786 
01787     // -----------------------------------------------------------------------
01788     // Frame
01789     // -----------------------------------------------------------------------
01790 
01799     KFbxTypedProperty<fbxBool1>                         UseFrameColor;
01800 
01808     KFbxTypedProperty<fbxDouble3>                       FrameColor;
01809 
01810     // -----------------------------------------------------------------------
01811     // On Screen Display
01812     // -----------------------------------------------------------------------
01813 
01821     KFbxTypedProperty<fbxBool1>                         ShowName;
01822 
01830     KFbxTypedProperty<fbxBool1>                         ShowInfoOnMoving;
01831 
01839     KFbxTypedProperty<fbxBool1>                         ShowGrid;
01840 
01848     KFbxTypedProperty<fbxBool1>                         ShowOpticalCenter;
01849 
01857     KFbxTypedProperty<fbxBool1>                         ShowAzimut;
01858 
01866     KFbxTypedProperty<fbxBool1>                         ShowTimeCode;
01867 
01875     KFbxTypedProperty<fbxBool1>                         ShowAudio;
01876 
01884     KFbxTypedProperty<fbxDouble3>                       AudioColor;
01885 
01886     // -----------------------------------------------------------------------
01887     // Clipping Planes
01888     // -----------------------------------------------------------------------
01889 
01897     KFbxTypedProperty<fbxDouble1>                       NearPlane;
01898 
01906     KFbxTypedProperty<fbxDouble1>                       FarPlane;
01907 
01908 
01917     KFbxTypedProperty<fbxBool1>                         AutoComputeClipPlanes;
01918 
01919 
01920     // -----------------------------------------------------------------------
01921     // Camera Film Setting
01922     // -----------------------------------------------------------------------
01923 
01932     KFbxTypedProperty<fbxDouble1>                       FilmWidth;
01933 
01942     KFbxTypedProperty<fbxDouble1>                       FilmHeight;
01943 
01951     KFbxTypedProperty<fbxDouble1>                       FilmAspectRatio;
01952 
01961     KFbxTypedProperty<fbxDouble1>                       FilmSqueezeRatio;
01962 
01970     KFbxTypedProperty<ECameraApertureFormat>            FilmFormat;
01971 
01980     KFbxTypedProperty<fbxDouble2>                       FilmOffset;
01981 
01982 
01983     // -----------------------------------------------------------------------
01984     // Camera View Widget Option
01985     // -----------------------------------------------------------------------
01986 
01994     KFbxTypedProperty<fbxBool1>                         ViewFrustum;
01995 
02003     KFbxTypedProperty<fbxBool1>                         ViewFrustumNearFarPlane;
02004 
02012     KFbxTypedProperty<ECameraBackgroundDisplayMode>     ViewFrustumBackPlaneMode;
02013 
02021     KFbxTypedProperty<fbxDouble1>                       BackPlaneDistance;
02022 
02030     KFbxTypedProperty<ECameraBackgroundDistanceMode>    BackPlaneDistanceMode;
02031 
02039     KFbxTypedProperty<fbxBool1>                         ViewCameraToLookAt;
02040 
02041     // -----------------------------------------------------------------------
02042     // Camera Lock Mode
02043     // -----------------------------------------------------------------------
02044 
02052     KFbxTypedProperty<fbxBool1>                         LockMode;
02053 
02061     KFbxTypedProperty<fbxBool1>                         LockInterestNavigation;
02062 
02063     // -----------------------------------------------------------------------
02064     // Background Image Display Options
02065     // -----------------------------------------------------------------------
02066 
02074     KFbxTypedProperty<fbxBool1>                         FitImage;
02075 
02080     KFbxTypedProperty<fbxBool1>                         Crop;
02081 
02089     KFbxTypedProperty<fbxBool1>                         Center;
02090 
02098     KFbxTypedProperty<fbxBool1>                         KeepRatio;
02099 
02107     KFbxTypedProperty<ECameraBackgroundDrawingMode>     BackgroundMode;
02108 
02116     KFbxTypedProperty<fbxDouble1>                       BackgroundAlphaTreshold;
02117 
02118     // -----------------------------------------------------------------------
02119     // Foreground Image Display Options
02120     // -----------------------------------------------------------------------
02121 
02129     KFbxTypedProperty<fbxBool1> FrontPlateFitImage;
02130 
02138     KFbxTypedProperty<fbxBool1> FrontPlateCrop;
02139 
02147     KFbxTypedProperty<fbxBool1> FrontPlateCenter;
02148 
02156     KFbxTypedProperty<fbxBool1> FrontPlateKeepRatio;
02157 
02158 
02167     KFbxTypedProperty<fbxBool1> ShowFrontPlate;
02168 
02176     KFbxTypedProperty<ECameraBackgroundDisplayMode>     ViewFrustumFrontPlaneMode;
02177 
02185     KFbxTypedProperty<fbxDouble1>                       FrontPlaneDistance;
02186 
02194     KFbxTypedProperty<ECameraBackgroundDistanceMode>    FrontPlaneDistanceMode;
02195 
02203     KFbxTypedProperty<fbxDouble1> ForegroundAlpha;
02204 
02205 
02213     KFbxTypedProperty<fbxReference> ForegroundTexture;
02214 
02222     KFbxTypedProperty<fbxReference> BackgroundTexture;
02223 
02224 
02225     // -----------------------------------------------------------------------
02226     // Safe Area
02227     // -----------------------------------------------------------------------
02228 
02236     KFbxTypedProperty<fbxBool1>                         DisplaySafeArea;
02237 
02245     KFbxTypedProperty<fbxBool1>                         DisplaySafeAreaOnRender;
02246 
02254     KFbxTypedProperty<ECameraSafeAreaStyle>             SafeAreaDisplayStyle;
02255 
02263     KFbxTypedProperty<fbxDouble1>                       SafeAreaAspectRatio;
02264 
02265     // -----------------------------------------------------------------------
02266     // 2D Magnifier
02267     // -----------------------------------------------------------------------
02268 
02276     KFbxTypedProperty<fbxBool1>                         Use2DMagnifierZoom;
02277 
02285     KFbxTypedProperty<fbxDouble1>                       _2DMagnifierZoom;
02286 
02294     KFbxTypedProperty<fbxDouble1>                       _2DMagnifierX;
02295 
02303     KFbxTypedProperty<fbxDouble1>                       _2DMagnifierY;
02304 
02305     // -----------------------------------------------------------------------
02306     // Projection Type: Ortho, Perspective
02307     // -----------------------------------------------------------------------
02308 
02316     KFbxTypedProperty<ECameraProjectionType>            ProjectionType;
02317 
02325     KFbxTypedProperty<fbxDouble1>                       OrthoZoom;
02326 
02327     // -----------------------------------------------------------------------
02328     // Depth Of Field & Anti Aliasing
02329     // -----------------------------------------------------------------------
02330 
02338     KFbxTypedProperty<fbxBool1>                         UseRealTimeDOFAndAA;
02339 
02347     KFbxTypedProperty<fbxBool1>                         UseDepthOfField;
02348 
02356     KFbxTypedProperty<ECameraFocusDistanceSource>       FocusSource;
02357 
02365     KFbxTypedProperty<fbxDouble1>                       FocusAngle;
02366 
02374     KFbxTypedProperty<fbxDouble1>                       FocusDistance;
02375 
02383     KFbxTypedProperty<fbxBool1>                         UseAntialiasing;
02384 
02392     KFbxTypedProperty<fbxDouble1>                       AntialiasingIntensity;
02393 
02401     KFbxTypedProperty<ECameraAntialiasingMethod>        AntialiasingMethod;
02402 
02403     // -----------------------------------------------------------------------
02404     // Accumulation Buffer
02405     // -----------------------------------------------------------------------
02406 
02414     KFbxTypedProperty<fbxBool1>                         UseAccumulationBuffer;
02415 
02423     KFbxTypedProperty<fbxInteger1>                      FrameSamplingCount;
02424 
02432     KFbxTypedProperty<ECameraSamplingType>              FrameSamplingType;
02433 
02435 //
02436 //  WARNING!
02437 //
02438 //  Anything beyond these lines may not be documented accurately and is
02439 //  subject to change without notice.
02440 //
02442 
02443 #ifndef DOXYGEN_SHOULD_SKIP_THIS
02444 
02445     friend class KFbxGlobalCameraSettings;
02446 
02447 public:
02448 
02449     // Clone
02450     virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
02451 
02452 protected:
02453 
02455     KFbxCamera& operator=(KFbxCamera const& pCamera);
02456 
02457     KFbxCamera(KFbxSdkManager& pManager, char const* pName);
02458     virtual ~KFbxCamera ();
02459 
02460     virtual void Construct(const KFbxCamera* pFrom);
02461     virtual bool ConstructProperties(bool pForceSet);
02462     virtual void Destruct(bool pRecursive, bool pDependents);
02463 
02467     virtual KString     GetTypeName() const;
02468     virtual KStringList GetTypeFlags() const;
02469 
02470 private:
02471 
02472     double ComputePixelRatio(kUInt pWidth, kUInt pHeight, double pScreenRatio = 1.3333333333);
02473 
02474     // Background Properties
02475     KString mBackgroundMediaName;
02476     KString mBackgroundFileName;
02477 
02478     friend class KFbxNode;
02479 
02480 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
02481 
02482 };
02483 
02484 typedef KFbxCamera* HKFbxCamera;
02485 
02486 inline EFbxType FbxTypeOf( KFbxCamera::ECameraAntialiasingMethod const &pItem )         { return eENUM; }
02487 inline EFbxType FbxTypeOf( KFbxCamera::ECameraApertureFormat const &pItem )             { return eENUM; }
02488 inline EFbxType FbxTypeOf( KFbxCamera::ECameraApertureMode const &pItem )               { return eENUM; }
02489 inline EFbxType FbxTypeOf( KFbxCamera::ECameraAspectRatioMode const &pItem )            { return eENUM; }
02490 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundDisplayMode const &pItem )      { return eENUM; }
02491 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundDistanceMode const &pItem )     { return eENUM; }
02492 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundDrawingMode const &pItem )      { return eENUM; }
02493 inline EFbxType FbxTypeOf( KFbxCamera::ECameraBackgroundPlacementOptions const &pItem ) { return eENUM; }
02494 inline EFbxType FbxTypeOf( KFbxCamera::ECameraFocusDistanceSource const &pItem )        { return eENUM; }
02495 inline EFbxType FbxTypeOf( KFbxCamera::ECameraFormat const &pItem )                     { return eENUM; }
02496 inline EFbxType FbxTypeOf( KFbxCamera::ECameraGateFit const &pItem )                    { return eENUM; }
02497 inline EFbxType FbxTypeOf( KFbxCamera::ECameraProjectionType const &pItem )             { return eENUM; }
02498 inline EFbxType FbxTypeOf( KFbxCamera::ECameraRenderOptionsUsageTime const &pItem )     { return eENUM; }
02499 inline EFbxType FbxTypeOf( KFbxCamera::ECameraSafeAreaStyle const &pItem )              { return eENUM; }
02500 inline EFbxType FbxTypeOf( KFbxCamera::ECameraSamplingType const &pItem )               { return eENUM; }
02501 
02502 #include <fbxfilesdk_nsend.h>
02503 
02504 #endif // #ifndef _FBXSDK_CAMERA_H_
02505 
02506