kfbxtakenode.h

Go to the documentation of this file.
00001 
00004 #ifndef _FBXSDK_TAKE_NODE_H_
00005 #define _FBXSDK_TAKE_NODE_H_
00006 
00007 /**************************************************************************************
00008 
00009  Copyright © 2001 - 2007 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 <klib/kerror.h>
00050 
00051 #ifndef MB_FBXSDK
00052 #include <kbaselib_nsuse.h>
00053 #endif
00054 #include <kbaselib_forward.h>
00055 
00056 #include <kfcurve/kfcurve_forward.h>
00057 #ifndef MB_FBXSDK
00058 #include <kfcurve/kfcurve_nsuse.h>
00059 #endif
00060 
00061 #include <fbxfilesdk_nsbegin.h>
00062 
00063 class KFbxGeometry;
00064 class KFbxVector4;
00065 class KFbxProperty;
00066 class KFbxObject;
00067 
00068 #define KFBXTAKENODE_DEFAULT_NAME           "Default"
00069 #define KFBXTAKENODE_ROOT_CURVE_NODE_NAME   "Defaults"
00070 
00071 
00087 class KFBX_DLL KFbxTakeNode
00088 {
00089 
00090 public:
00095 
00099     KFbxTakeNode(char* pName = KFBXTAKENODE_DEFAULT_NAME);
00100 
00104     KFbxTakeNode(KFbxTakeNode& pTakeNode);
00105 
00107     ~KFbxTakeNode();
00108 
00110 
00115 
00119     void SetName(char* pName);
00120 
00124     char* GetName();
00125 
00127 
00133 
00138     KFCurveNode* GetKFCurveNode();
00139 
00144     KFCurve* GetTranslationX();
00145 
00150     KFCurve* GetTranslationY();
00151 
00156     KFCurve* GetTranslationZ();
00157 
00162     KFCurve* GetEulerRotationX();
00163 
00168     KFCurve* GetEulerRotationY();
00169 
00174     KFCurve* GetEulerRotationZ();
00175 
00180     KFCurve* GetScaleX();
00181 
00186     KFCurve* GetScaleY();
00187 
00192     KFCurve* GetScaleZ();
00193 
00199     KFCurve* GetVisibility();
00200 
00202 
00209 
00215     KFCurve* GetColorR();
00216 
00222     KFCurve* GetColorG();
00223 
00229     KFCurve* GetColorB();
00230 
00237     KFCurve* GetLightIntensity();
00238 
00246     KFCurve* GetLightConeAngle();
00247 
00255     KFCurve* GetLightFog();
00256 
00258 
00265     
00278     KFCurve* GetCameraFieldOfView();
00279 
00287     KFCurve* GetCameraFieldOfViewX();
00288 
00296     KFCurve* GetCameraFieldOfViewY();
00297 
00303     KFCurve* GetCameraFocalLength();
00304 
00312     KFCurve* GetCameraOpticalCenterX();
00313 
00321     KFCurve* GetCameraOpticalCenterY();
00322 
00328     KFCurve* GetCameraRoll();
00329 
00335     KFCurve* GetCameraTurnTable();
00336 
00342     KFCurve* GetBackgroundColorR();
00343 
00349     KFCurve* GetBackgroundColorG();
00350 
00356     KFCurve* GetBackgroundColorB();
00357 
00359 
00366     
00373     KFCurve* GetCameraIndex();
00374 
00376 
00377 
00384 
00394     KFCurve* GetShapeChannel(KFbxGeometry* pGeometry, int pShapeIndex);
00395 
00397 
00404 
00411     KFCurve* GetOcclusion();
00412 
00419     KFCurve* GetIKReachTranslation();
00420 
00427     KFCurve* GetIKReachRotation();
00428 
00430 
00436     
00441     KFCurve* GetTextureTranslationX();
00446     KFCurve const* GetTextureTranslationX() const;
00447 
00452     KFCurve* GetTextureTranslationY();
00457     KFCurve const* GetTextureTranslationY() const;
00458 
00463     KFCurve* GetTextureTranslationZ();
00468     KFCurve const* GetTextureTranslationZ() const;
00469 
00474     KFCurve* GetTextureEulerRotationX();
00479     KFCurve const* GetTextureEulerRotationX() const;
00480 
00485     KFCurve* GetTextureEulerRotationY();
00490     KFCurve const* GetTextureEulerRotationY() const;
00491 
00496     KFCurve* GetTextureEulerRotationZ();
00501     KFCurve const* GetTextureEulerRotationZ() const;
00502 
00507     KFCurve* GetTextureScaleX();
00512     KFCurve const* GetTextureScaleX() const;
00513 
00518     KFCurve* GetTextureScaleY();
00523     KFCurve const* GetTextureScaleY() const;
00524 
00529     KFCurve* GetTextureScaleZ();
00534     KFCurve const* GetTextureScaleZ() const;
00535 
00540     KFCurve* GetTextureAlpha();
00541 
00543 
00549 
00554     KFCurve* GetMaterialEmissiveColorR();
00555 
00560     KFCurve* GetMaterialEmissiveColorG();
00561 
00566     KFCurve* GetMaterialEmissiveColorB();
00567 
00572     KFCurve* GetMaterialAmbientColorR();
00573 
00578     KFCurve* GetMaterialAmbientColorG();
00579 
00584     KFCurve* GetMaterialAmbientColorB();
00585 
00590     KFCurve* GetMaterialDiffuseColorR();
00591 
00596     KFCurve* GetMaterialDiffuseColorG();
00597 
00602     KFCurve* GetMaterialDiffuseColorB();
00603 
00608     KFCurve* GetMaterialSpecularColorR();
00609 
00614     KFCurve* GetMaterialSpecularColorG();
00615 
00620     KFCurve* GetMaterialSpecularColorB();
00621 
00626     KFCurve* GetMaterialOpacity();
00627 
00632     KFCurve* GetMaterialReflectivity();
00633 
00638     KFCurve* GetMaterialShininess();
00639 
00641 
00647 
00653     KFCurve* GetConstraintObjectWeight(KFbxObject* pObject);
00654 
00659     KFCurve* GetPositionConstraintOffsetX();
00660 
00665     KFCurve* GetPositionConstraintOffsetY();
00666 
00671     KFCurve* GetPositionConstraintOffsetZ();
00672 
00677     KFCurve* GetRotationConstraintOffsetX();
00678 
00683     KFCurve* GetRotationConstraintOffsetY();
00684 
00689     KFCurve* GetRotationConstraintOffsetZ();
00690 
00695     KFCurve* GetScaleConstraintOffsetX();
00696 
00701     KFCurve* GetScaleConstraintOffsetY();
00702 
00707     KFCurve* GetScaleConstraintOffsetZ();
00708 
00714     KFCurve* GetParentConstraintRotationOffsetX(KFbxObject* pObject);
00715 
00721     KFCurve* GetParentConstraintRotationOffsetY(KFbxObject* pObject);
00722 
00728     KFCurve* GetParentConstraintRotationOffsetZ(KFbxObject* pObject);
00729 
00735     KFCurve* GetParentConstraintTranslationOffsetX(KFbxObject* pObject);
00736 
00742     KFCurve* GetParentConstraintTranslationOffsetY(KFbxObject* pObject);
00743 
00749     KFCurve* GetParentConstraintTranslationOffsetZ(KFbxObject* pObject);
00750 
00755     KFCurve* GetAimConstraintOffsetX();
00756 
00761     KFCurve* GetAimConstraintOffsetY();
00762 
00767     KFCurve* GetAimConstraintOffsetZ();
00768 
00773     KFCurve* GetAimConstraintWorldUpVectorX();
00774 
00779     KFCurve* GetAimConstraintWorldUpVectorY();
00780 
00785     KFCurve* GetAimConstraintWorldUpVectorZ();
00786 
00791     KFCurve* GetAimConstraintAimVectorX();
00792 
00797     KFCurve* GetAimConstraintAimVectorY();
00798 
00803     KFCurve* GetAimConstraintAimVectorZ();
00804 
00809     KFCurve* GetAimConstraintUpVectorX();
00810 
00815     KFCurve* GetAimConstraintUpVectorY();
00816 
00821     KFCurve* GetAimConstraintUpVectorZ();
00822 
00827     KFCurve* GetSCIKConstraintWeight();
00828 
00833     KFCurve* GetSCIKConstraintTwist();
00834 
00839     KFCurve* GetSCIKConstraintPoleVectorX();
00840 
00845     KFCurve* GetSCIKConstraintPoleVectorY();
00846 
00851     KFCurve* GetSCIKConstraintPoleVectorZ();
00852 
00854 
00859 
00866     KFCurve* GetPropertyAnimation(KFbxProperty* pProperty, kUInt pComponentIndex);
00867 
00869 
00874 
00878     KError& GetError();
00879 
00882     typedef enum 
00883     {
00884         eNO_CURVE_FOUND, 
00885         eERROR_COUNT     
00886     } EError;
00887 
00891     EError GetLastErrorID();
00892 
00896     char* GetLastErrorString();
00897 
00899 
00905 
00913     bool GetAnimationInterval(KTime& pStart, KTime& pStop); 
00914 
00919     bool AddRotationToTranslation(KFbxVector4 pRotation);
00920 
00921 
00923 
00925 //
00926 //  WARNING!
00927 //
00928 //  Anything beyond these lines may not be documented accurately and is 
00929 //  subject to change without notice.
00930 //
00932 
00933 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00934 
00935 public:
00936 
00937     bool IsChannelAnimated(char* pGroup, char* pSubGroup, char* pName);
00938     bool IsChannelAnimated(char* pGroup, char* pSubGroup, KDataType* pDataType);
00939 
00940 private:
00941 
00942     void DeleteRecursive(KFCurveNode* pNode);
00943     KFCurve* GetKFCurve(char* pGroup, char* pSubGroup, char* pName);
00944     KFCurve const* GetKFCurve(char* pGroup, char* pSubGroup, char* pName) const;
00945     KFCurve* GetKFCurve(char* pGroup, char* pSubGroup, KDataType* pDataType);
00946     KFCurve const* GetKFCurve(char* pGroup, char* pSubGroup, KDataType* pDataType) const;
00947 
00948     KString mName;
00949     KFCurveNode* mNode;
00950 
00951     KError mError;
00952 
00953     friend class KFbxTakeNodeContainer;
00954 
00955 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00956 
00957 };
00958 
00959 typedef KFbxTakeNode* HKFbxTakeNode;
00960 
00961 #include <fbxfilesdk_nsend.h>
00962 
00963 #endif // #ifndef _FBXSDK_TAKE_NODE_H_
00964 
00965