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 
00103 
00105 enum FBOptionsContext { 
00106     kFBOptionsContextSave ,         
00107     kFBOptionsContextSaveSelection ,
00108     kFBOptionsContextLoad ,         
00109     kFBOptionsContextMultiLoad ,    
00110     kFBOptionsContextMerge,         
00111 };
00112 
00113 __FB_FORWARD( FBFbxOptions );
00114 
00116 class FBSDK_DLL FBFbxOptions : public FBComponent {
00117     __FBClassDeclare( FBFbxOptions, FBComponent );
00118 public:
00126     FBFbxOptions( bool pLoad, const char * pFilePathToLoad = NULL, HIObject pObject = NULL);
00127 
00133     void SetAll( FBElementAction pElementAction, bool pAnimation );
00134 
00140     void SaveToString(FBString& pString, FBOptionsContext context );
00141 
00147     void SetFromString( const char* pString, FBOptionsContext context );
00148 
00153     FBPropertyBool  UpdateRecentFiles;     
00154 
00159     FBPropertyTakeSpanOnLoad    TakeSpan;               
00160 
00161 
00162 
00168     FBPropertyFileFormatAndVersion FileFormatAndVersion;
00169     FBPropertyBool              EmbedMedia;             
00170     FBPropertyBool              SaveSelectedModelsOnly; 
00171     FBPropertyBool              KeepTransformHierarchy; 
00172     FBPropertyBool              UseASCIIFormat;         
00173     FBPropertyInt               CacheSize;              
00174     FBPropertyBool              CompressArray;          
00175     FBPropertyInt               CompressMinSize;        
00176     FBPropertyInt               CompressLevel;          
00177 
00178 
00179 
00183     FBPropertyBool              BaseCameras;            
00184     FBPropertyBool              CameraSwitcherSettings; 
00185     FBPropertyBool              CurrentCameraSettings;  
00186     FBPropertyBool              GlobalLightingSettings; 
00187     FBPropertyBool              TransportSettings;      
00188 
00189 
00193     FBPropertyBool              FileReference;          
00194     FBPropertyBool              FileReferenceEdit;      
00195     FBPropertyString            NamespaceList;          
00196 
00197 
00201     FBPropertyBool              RemoveEmptyLayer;           
00202     FBPropertyBool              ConsiderMuteSolo;           
00203 
00204 
00208     FBPropertyElementAction     Actors;               
00209     FBPropertyElementAction     ActorFaces;           
00210     FBPropertyElementAction     Audio;                
00211     FBPropertyElementAction     Bones;                
00212     FBPropertyElementAction     Cameras;              
00213     FBPropertyElementAction     Characters;           
00214     FBPropertyElementAction     CharacterFaces;       
00215     FBPropertyElementAction     CharacterExtensions;  
00216     FBPropertyElementAction     Constraints;          
00217     FBPropertyElementAction     Devices;              
00218     FBPropertyElementAction     FileReferences;       
00219     FBPropertyElementAction     Groups;               
00220     FBPropertyElementAction     KeyingGroups;         
00221     FBPropertyElementAction     Lights;               
00222     FBPropertyElementAction     Materials;            
00223     FBPropertyElementAction     Models;               
00224     FBPropertyElementAction     Notes;                
00225     FBPropertyElementAction     OpticalData;          
00226     FBPropertyElementAction     PhysicalProperties;   
00227     FBPropertyElementAction     Poses;                
00228     FBPropertyElementAction     Scripts;              
00229     FBPropertyElementAction     Sets;                 
00230     FBPropertyElementAction     Shaders;              
00231     FBPropertyElementAction     Solvers;              
00232     FBPropertyElementAction     Story;                
00233     FBPropertyElementAction     Textures;             
00234     FBPropertyElementAction     Video;                
00235 
00236 
00237 
00242     FBPropertyBool   ActorFacesAnimation;        
00243     FBPropertyBool   BonesAnimation;             
00244     FBPropertyBool   CamerasAnimation;           
00245     FBPropertyBool   CharactersAnimation;        
00246     FBPropertyBool   CharacterFacesAnimation;    
00247     FBPropertyBool   ConstraintsAnimation;       
00248     FBPropertyBool   DevicesAnimation;           
00249     FBPropertyBool   LightsAnimation;            
00250     FBPropertyBool   MaterialsAnimation;         
00251     FBPropertyBool   ModelsAnimation;            
00252     FBPropertyBool   NotesAnimation;             
00253     FBPropertyBool   PhysicalPropertiesAnimation;   
00254     FBPropertyBool   ShadersAnimation;           
00255     FBPropertyBool   SolversAnimation;           
00256     FBPropertyBool   StoryAnimation;             
00257     FBPropertyBool   TexturesAnimation;          
00258 
00259 
00263     FBPropertyBool  SaveCharacter;                  
00264     FBPropertyBool  SaveControlSet;                 
00265     FBPropertyBool  SaveCharacterExtensions;        
00266     FBPropertyBool  ClearSelectionBeforeSave;                
00267 
00268 
00269 
00270 
00274     FBPropertyCharacterLoadAnimationMethod  TransferMethod;                 
00275     FBPropertyBool  ProcessAnimationOnExtension;    
00276     FBPropertyBool  ReplaceControlSet;              
00277     FBPropertyBool  ResetDOF;                       
00278     FBPropertyBool  ResetHierarchy;                 
00279     FBPropertyBool  RemoveConstraintReference;      
00280     FBPropertyBool  CopyCharacterExtensions;        
00281     FBPropertyBool  RetargetOnBaseLayer;            
00282     FBPropertyBool  IgnoreConflicts;                
00283 
00284 
00288     FBPropertyBool  ShowFileDialog;                  
00289     FBPropertyBool  ShowOptionsDialog;               
00290     FBPropertyBool  SetPropertyStaticIfPossible;     
00291 
00292 
00297 
00301     int GetTakeCount() const;                  
00302     
00306     bool GetTakeSelect(int pTakeIndex) const;
00307 
00312     void SetTakeSelect(int pTakeIndex, bool pSelect);
00313 
00317      const char* GetTakeName(int pTakeIndex) const;
00318 
00323     void SetTakeName(int pTakeIndex,  const char* pName);
00324 
00328     const char* GetTakeDescription(int pTakeIndex) const;
00329 
00334     void SetTakeDescription(int pTakeIndex,  const char* pDescription);
00335 
00339      const char* GetTakeDestinationName(int pTakeIndex) const;
00340 
00345     void SetTakeDestinationName(int pTakeIndex,  const char* pDestinationName);
00347 
00351     void SetNamespaceList(const FBStringList& pNamespaceList);
00352 
00356     FBStringList GetNamespaceList();
00357 };
00358 
00359 #ifdef FBSDKUseNamespace
00360     }
00361 #endif
00362 
00363 #endif