xsi_application.h
Go to the documentation of this file.
00001 //*****************************************************************************
00011 //*****************************************************************************
00012 
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016 
00017 #ifndef __XSIAPPLICATION_H__
00018 #define __XSIAPPLICATION_H__
00019 
00020 #include <xsi_siobject.h>
00021 #include <xsi_value.h>
00022 #include <xsi_status.h>
00023 
00024 namespace XSI {
00025 
00026 class Selection;
00027 class Dictionary;
00028 class Command;
00029 class CommandArray;
00030 class Project;
00031 class Model;
00032 class Preferences;
00033 class Desktop;
00034 class UIToolkit;
00035 class Plugin;
00036 class UIToolkit;
00037 class Factory;
00038 class ProjectItem;
00039 class ShaderDef;
00040 
00041 //*****************************************************************************
00075 //*****************************************************************************
00076 
00077 class SICPPSDKDECL Application : public SIObject
00078 {
00079 public:
00081     Application();
00082 
00084     ~Application(){}
00085 
00090     Application(const CRef& in_ref);
00091 
00095     Application(const Application& in_obj);
00096 
00101     bool IsA( siClassID in_ClassID) const;
00102 
00106     siClassID GetClassID() const;
00107 
00113     Application& operator=(const Application& in_obj);
00114 
00120     Application& operator=(const CRef& in_ref);
00121 
00125     Selection GetSelection() const;
00126 
00131     CRefArray GetFCurveSelection() const;
00132 
00136     Dictionary GetDictionary() const;
00137 
00141     Project GetActiveProject() const;
00142 
00149     CStatus PutActiveProject(const CString& in_Project) const;
00150 
00154     Model GetActiveSceneRoot() const;
00155 
00161     CString GetInstallationPath( siInstallationPath in_pathType ) const;
00162 
00177     CString GetVersion() const;
00178 
00186     CString GetLicense() const;
00187 
00204     CStatus InstallAddon( const CString& in_strFileName, siInstallationPath in_eInstallDir, bool in_bNoUI=false );
00205 
00214     CStatus UnInstallAddon( const CString& in_strFileName );
00215 
00229     Command CreateCommand( const CString& in_CommandName, siCommandCategory in_category = siNoCategory );
00230 
00240     CStatus AddCommand(const CRef& in_Cmd);
00241 
00253     CStatus RemoveCommand( const CString& name );
00254 
00258     CommandArray GetCommands() const;
00259 
00267     Command GetCommandByScriptingName(const CString& scriptingName) const ;
00268 
00333     CStatus ExecuteCommand
00334     (
00335         const CString&  in_name,
00336         CValueArray&    in_args,
00337         CValue&         io_val
00338     ) const;
00339 
00357     CStatus ExecuteCommand
00358     (
00359         const CString&      in_name,
00360         const CValueArray&  in_args,
00361         CValue&             io_val
00362     ) const;
00363 
00375     CScriptErrorDescriptor ExecuteScript
00376     (
00377         const CString &     in_ScriptFilename,
00378         const CString&      in_ScriptLanguage,
00379         const CString&      in_ScriptProcedure,
00380         CValueArray&        in_args,
00381         CValue&             out_returnval
00382     ) ;
00383 
00431     CScriptErrorDescriptor ExecuteScriptCode
00432     (
00433         const CString & in_ScriptCode,
00434         const CString&  in_ScriptLanguage
00435     ) ;
00436 
00453     CScriptErrorDescriptor ExecuteScriptProcedure
00454     (
00455         const CString & in_ScriptCode,
00456         const CString&  in_ScriptLanguage,
00457         const CString&  in_ScriptProcedure,
00458         CValueArray&    in_args,
00459         CValue&         out_returnval
00460     ) ;
00461 
00466     CRefArray GetEventInfos() const;
00467 
00476     CStatus LogMessage
00477     (
00478         const CString& in_Message,
00479         siSeverityType in_Sev = siInfoMsg
00480     ) const;
00481 
00489     CStatus CreateProject(
00490             const CString& in_ProjectPath,
00491             Project &out_rProject) const;
00492 
00498     Preferences GetPreferences() const;
00499 
00504     Desktop GetDesktop() const;
00505 
00511     Factory GetFactory() const;
00512 
00518     CString GetActiveToolName() const;
00519 
00523     UIToolkit GetUIToolkit() const;
00524 
00529     CRefArray GetFilters() const;
00530 
00535     CRefArray GetPlugins() const;
00536 
00541     bool IsInteractive() const;
00542 
00550     Plugin LoadPlugin( const CString& in_pluginPath );
00551 
00568     CStatus UnloadPlugin( const CString& in_pluginPath, bool in_bRemove );
00569 
00577     CStatus UpdatePlugins() ;
00578 
00587     CStatus AddWorkgroup(const CString& in_workgroupPath) ;
00588 
00595     CStatus RemoveWorkgroup(const CString& in_workgroupPath) ;
00596 
00601     CStringArray GetWorkgroups() ;
00602 
00611     CStatus RescanWorkgroups() ;
00612 
00627     CStatus ActivateWorkgroup( const CString& in_workgroupPath, bool in_bActivate ) ;
00628 
00633     CRefArray GetRenderers( ) ;
00634 
00641     ProjectItem GetObjectFromID( ULONG in_nID ) const;
00642 
00716     CSIObjectRefArray FindObjects( const XSI::siClassID& in_nClsID ) const;
00717 
00740     CSIObjectRefArray FindObjects( const CString& in_sCLSID ) const;
00741 
00747     ShaderDef GetShaderDef( const CString&  in_progID );
00748 
00753     CRefArray GetShaderDefinitions( );
00754 
00778     CStatus RegisterShaderFamily(
00779         const CString &in_strName,
00780         const CString &in_strDisplayName,
00781         const CString &in_strDescription,
00782         unsigned char in_nodeRed,
00783         unsigned char in_nodeGreen,
00784         unsigned char in_nodeBlue,
00785         bool        in_bShaderball
00786         );
00787 
00815     CStatus RegisterShaderCustomParameterType(
00816         const CString &in_strName,
00817         const CString &in_strDisplayName,
00818         const CString &in_strDescription,
00819         unsigned char in_portRed,
00820         unsigned char in_portGreen,
00821         unsigned char in_portBlue,
00822         const CStringArray &in_typeFilter,
00823         const CStringArray &in_familyFilter
00824         );
00825 
00859     CStatus OpenUndo( const CString& in_sComplexName );
00860 
00888     CStatus CloseUndo( );
00889 
00894     bool IsUndoing() const;
00895     
00896     private:
00897     Application * operator&() const;
00898     Application * operator&();
00899 };
00900 
00901 
00902 
00903 };
00904 
00905 #endif // __XSIAPPLICATION_H__