fbfbxoptions.h

Go to the documentation of this file.
00001 #ifndef __FBFBXOPTIONS_H__
00002 #define __FBFBXOPTIONS_H__
00003 /**************************************************************************
00004  Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
00005  All Rights Reserved.
00006  
00007  The coded instructions, statements, computer programs, and/or related 
00008  material (collectively the "Data") in these files contain unpublished 
00009  information proprietary to Autodesk, Inc. and/or its licensors, which is 
00010  protected by Canada and United States of America federal copyright law 
00011  and by international treaties.
00012  
00013  The Data may not be disclosed or distributed to third parties, in whole 
00014  or in part, without the prior written consent of Autodesk, Inc. 
00015  ("Autodesk").
00016  
00017  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
00018  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO 
00019  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR 
00020  ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES 
00021  OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 
00022  PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT 
00023  WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR 
00024  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 
00028  EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE 
00029  DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS 
00030  OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR 
00031  DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF 
00032  LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT 
00033  LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE 
00034  DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS 
00035  BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
00036  
00037 **************************************************************************/
00038 
00047 #include <kaydaradef.h>
00048 #ifndef FBSDK_DLL 
00049 
00052     #define FBSDK_DLL K_DLLIMPORT
00053 #endif
00054 
00055 #include <fbsdk/fbcomponent.h>
00056 
00057 #ifdef FBSDKUseNamespace
00058     namespace FBSDKNamespace {
00059 #endif
00060 
00061 
00063 
00066 enum FBElementAction { 
00067     kFBElementActionSave   ,       
00068     kFBElementActionAppend ,       
00069     kFBElementActionMerge  ,       
00070     kFBElementActionDiscard,       
00071 };
00072 FB_DEFINE_ENUM( FBSDK_DLL, ElementAction ); // FBPropertyElementAction
00073 
00076 enum FBTakeSpanOnLoad { 
00077     kFBLeaveAsIs     , 
00078     kFBImportFromFile, 
00079     kFBFrameAnimation, 
00080 };
00081 FB_DEFINE_ENUM( FBSDK_DLL, TakeSpanOnLoad ); // FBPropertyTakeSpanOnLoad
00082 
00085 enum FBCharacterLoadAnimationMethod { 
00086     kFBCharacterLoadConnect       , 
00087     kFBCharacterLoadCopy          , 
00088     kFBCharacterLoadRetarget      , 
00089     kFBCharacterLoadPlotIfSampled , 
00090     kFBCharacterLoadPlot            
00091 };
00092 FB_DEFINE_ENUM(FBSDK_DLL, CharacterLoadAnimationMethod);
00093 
00094 enum FBFileFormatAndVersion
00095 {
00096     kFBFBX2010,                             
00097     kFBFBX2011,                             
00098     kFBDefaultFormatAndVersion = kFBFBX2011 
00099 };
00100 FB_DEFINE_ENUM(FBSDK_DLL, FileFormatAndVersion);
00101 
00102 __FB_FORWARD( FBFbxOptions );
00103 
00105 class FBSDK_DLL FBFbxOptions : public FBComponent {
00106     __FBClassDeclare( FBFbxOptions, FBComponent );
00107 public:
00114     FBFbxOptions( bool pLoad, const char * pFilePathToLoad = NULL, HIObject pObject = NULL);
00115 
00121     void SetAll( FBElementAction pElementAction, bool pAnimation );
00122 
00127     FBPropertyTakeSpanOnLoad    TakeSpan;               
00128 
00129 
00130 
00136     FBPropertyFileFormatAndVersion FileFormatAndVersion;
00137     FBPropertyBool              EmbedMedia;             
00138     FBPropertyBool              SaveSelectedModelsOnly; 
00139     FBPropertyBool              UseASCIIFormat;         
00140     FBPropertyInt               CacheSize;              
00141     FBPropertyBool              CompressArray;          
00142     FBPropertyInt               CompressMinSize;        
00143     FBPropertyInt               CompressLevel;          
00144 
00145 
00146 
00150     FBPropertyBool              BaseCameras;            
00151     FBPropertyBool              CameraSwitcherSettings; 
00152     FBPropertyBool              CurrentCameraSettings;  
00153     FBPropertyBool              GlobalLightingSettings; 
00154     FBPropertyBool              TransportSettings;      
00155 
00156 
00157     FBPropertyString            CustomImportNamespace;  
00158 
00162     FBPropertyElementAction     Actors;               
00163     FBPropertyElementAction     ActorFaces;           
00164     FBPropertyElementAction     Audio;                
00165     FBPropertyElementAction     Bones;                
00166     FBPropertyElementAction     Cameras;              
00167     FBPropertyElementAction     Characters;           
00168     FBPropertyElementAction     CharacterFaces;       
00169     FBPropertyElementAction     CharacterExtensions;  
00170     FBPropertyElementAction     Constraints;          
00171     FBPropertyElementAction     Devices;              
00172     FBPropertyElementAction     Groups;               
00173     FBPropertyElementAction     KeyingGroups;         
00174     FBPropertyElementAction     Lights;               
00175     FBPropertyElementAction     Materials;            
00176     FBPropertyElementAction     Models;               
00177     FBPropertyElementAction     Notes;                
00178     FBPropertyElementAction     OpticalData;          
00179     FBPropertyElementAction     PhysicalProperties;   
00180     FBPropertyElementAction     Poses;                
00181     FBPropertyElementAction     Scripts;              
00182     FBPropertyElementAction     Sets;                 
00183     FBPropertyElementAction     Shaders;              
00184     FBPropertyElementAction     Solvers;              
00185     FBPropertyElementAction     Story;                
00186     FBPropertyElementAction     Textures;             
00187     FBPropertyElementAction     Video;                
00188 
00189 
00190 
00195     FBPropertyBool   ActorFacesAnimation;        
00196     FBPropertyBool   BonesAnimation;             
00197     FBPropertyBool   CamerasAnimation;           
00198     FBPropertyBool   CharactersAnimation;        
00199     FBPropertyBool   CharacterFacesAnimation;    
00200     FBPropertyBool   ConstraintsAnimation;       
00201     FBPropertyBool   DevicesAnimation;           
00202     FBPropertyBool   LightsAnimation;            
00203     FBPropertyBool   MaterialsAnimation;         
00204     FBPropertyBool   ModelsAnimation;            
00205     FBPropertyBool   NotesAnimation;             
00206     FBPropertyBool   PhysicalPropertiesAnimation;   
00207     FBPropertyBool   ShadersAnimation;           
00208     FBPropertyBool   SolversAnimation;           
00209     FBPropertyBool   TexturesAnimation;          
00210 
00211 
00215     FBPropertyBool  SaveCharacter;                  
00216     FBPropertyBool  SaveControlSet;                 
00217     FBPropertyBool  SaveCharacterExtensions;        
00218     FBPropertyBool  ClearSelectionBeforeSave;                
00219 
00220 
00221 
00222 
00226     FBPropertyCharacterLoadAnimationMethod  TransferMethod;                 
00227     FBPropertyBool  ProcessAnimationOnExtension;    
00228     FBPropertyBool  ReplaceControlSet;              
00229     FBPropertyBool  ResetDOF;                       
00230     FBPropertyBool  ResetHierarchy;                 
00231     FBPropertyBool  RemoveConstraintReference;      
00232     FBPropertyBool  CopyCharacterExtensions;        
00233     FBPropertyBool  RetargetOnBaseLayer;            
00234     FBPropertyBool  IgnoreConflicts;                
00235 
00236 
00240     FBPropertyBool  ShowFileDialog;                  
00241     FBPropertyBool  ShowOptionsDialog;               
00242 
00243 
00248 
00252     int GetTakeCount() const;                  
00253     
00257     bool GetTakeSelect(int pTakeIndex) const;
00258 
00263     void SetTakeSelect(int pTakeIndex, bool pSelect);
00264 
00268      const char* GetTakeName(int pTakeIndex) const;
00269 
00274     void SetTakeName(int pTakeIndex,  const char* pName);
00275 
00279     const char* GetTakeDescription(int pTakeIndex) const;
00280 
00285     void SetTakeDescription(int pTakeIndex,  const char* pDescription);
00286 
00290      const char* GetTakeDestinationName(int pTakeIndex) const;
00291 
00296     void SetTakeDestinationName(int pTakeIndex,  const char* pDestinationName);
00298 
00299 };
00300 
00301 #ifdef FBSDKUseNamespace
00302     }
00303 #endif
00304 
00305 #endif