FBX SDK Reference Guide: kfbxpropertydef.h Source File
00001 #ifndef _FBXSDK_KFBXPROPERTYDEF_H_
00002 #define _FBXSDK_KFBXPROPERTYDEF_H_
00003 
00004 /**************************************************************************************
00005 
00006  Copyright ?2001 - 2008 Autodesk, Inc. and/or its licensors.
00007  All Rights Reserved.
00008 
00009  The coded instructions, statements, computer programs, and/or related material 
00010  (collectively the "Data") in these files contain unpublished information 
00011  proprietary to Autodesk, Inc. and/or its licensors, which is protected by 
00012  Canada and United States of America federal copyright law and by international 
00013  treaties. 
00014  
00015  The Data may not be disclosed or distributed to third parties, in whole or in
00016  part, without the prior written consent of Autodesk, Inc. ("Autodesk").
00017 
00018  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
00019  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
00020  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR ARISING
00021  BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE, 
00022  NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR USE. 
00023  WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT WARRANT THAT THE OPERATION
00024  OF THE DATA WILL BE UNINTERRUPTED OR ERROR FREE. 
00025  
00026  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
00027  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR EXPENSES
00028  OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE DAMAGES OR OTHER
00029  SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS OF PROFITS, REVENUE
00030  OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY KIND),
00031  HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF LIABILITY, WHETHER DERIVED
00032  FROM CONTRACT, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE), OR OTHERWISE,
00033  ARISING OUT OF OR RELATING TO THE DATA OR ITS USE OR ANY OTHER PERFORMANCE,
00034  WHETHER OR NOT AUTODESK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS
00035  OR DAMAGE. 
00036 
00037 **************************************************************************************/
00038 
00039 #include <kaydaradef.h>
00040 #ifndef KFBX_DLL 
00041     #define KFBX_DLL K_DLLIMPORT
00042 #endif
00043 
00044 #include <fbxfilesdk_nsbegin.h>
00045 
00046     typedef int                 kFbxPropertyId;
00047     const   kFbxPropertyId      kFbxProperyIdNull = -1;
00048     const   kFbxPropertyId      kFbxProperyIdRoot = 0;
00049 
00050     enum    KFbxInheritType     { eFbxOverride=0,eFbxInherit=1,eFbxDeleted=2 } ;
00051 
00052     enum kFbxConnectionType
00053     { 
00054         eFbxConnectionNone              = 0,
00055 
00056         // System or user
00057         eFbxConnectionSystem            = 1 << 0,
00058         eFbxConnectionUser              = 1 << 1,
00059         eFbxConnectionSystemOrUser      = eFbxConnectionUser | eFbxConnectionSystem,
00060 
00061         // Type of Link
00062         eFbxConnectionReference         = 1 << 2,
00063         eFbxConnectionContains          = 1 << 3,
00064         eFbxConnectionData              = 1 << 4,
00065         eFbxConnectionLinkType          = eFbxConnectionReference | eFbxConnectionContains | eFbxConnectionData,
00066 
00067         eFbxConnectionDefault           = eFbxConnectionUser | eFbxConnectionReference,
00068 
00069 
00070         eFbxConnectionUnidirectional    = 1 << 7
00071     };
00072 
00073     class FbxPropertyFlags
00074     {
00075     public:
00076             enum eFbxPropertyFlags
00077             {
00078                 eNO_FLAG        = 0,
00079                 eANIMATABLE     = 1, 
00080                 eUSER           = 1<<1,
00081                 eTEMPORARY      = 1<<2,  // System property
00082                 ePUBLISHED      = 1<<3, 
00083                 ePSTATIC        = 1<<4, 
00084 
00085                 eNOT_SAVABLE    = 1<<5,
00086                 eHIDDEN         = 1<<6,
00087 
00088                 eUI_DISABLED    = 1<<7,  // for dynamic UI
00089                 eUI_GROUP       = 1<<8,  // for dynamic UI
00090                 eUI_BOOLGROUP   = 1<<9,  // for dynamic UI
00091                 eUI_EXPANDED    = 1<<10, // for dynamic UI
00092                 eUI_NOCAPTION   = 1<<11, // for dynamic UI
00093                 eUI_PANEL     = 1<<12  // for dynamic UI
00094 
00095             };
00096 
00097             // VC6 Does not like static variables that are initialized in the header
00098             // and there is no kfbxpropertydef.cxx file.
00099             inline static int GetFlagCount() { return 14; }
00100 
00101             inline static eFbxPropertyFlags AllFlags()
00102             {
00103                 eFbxPropertyFlags lAllFlags = eNO_FLAG;
00104 
00105                 for( int i = 0; i < GetFlagCount()-1; ++i )
00106                     lAllFlags = (eFbxPropertyFlags) ( (lAllFlags << 1) | 1 );
00107                 
00108                 return lAllFlags;
00109             }
00110     };
00111 
00112     /**************************************************************************
00113     * Filter management
00114     **************************************************************************/
00115     class   KFbxConnectionPoint;
00116     typedef int kFbxFilterId;
00117 
00121     class KFBX_DLL KFbxConnectionPointFilter
00122     {
00123         // CONSTRUCTOR/DESTRUCTOR
00128     public: 
00130         KFbxConnectionPointFilter() { }
00132         virtual ~KFbxConnectionPointFilter();
00134     public:
00139 
00141         virtual KFbxConnectionPointFilter*      Ref();
00143         virtual void                            Unref();
00144 
00146         virtual kFbxFilterId                    GetUniqueId() const { return 0; }
00147 
00149         virtual bool                            IsValid             (KFbxConnectionPoint*   pConnect) const;
00151         virtual bool                            IsValidConnection   (KFbxConnectionPoint*   pConnect,kFbxConnectionType pType) const;
00153         virtual bool                            IsEqual             (KFbxConnectionPointFilter* pConnectFilter) const;
00154 
00156     };
00157 
00158 #include <fbxfilesdk_nsend.h>
00159 
00160 #endif // #ifndef _FBXSDK_Document_H_
00161 
00162 
00163 
00164