PluginRegistrar

PluginRegistrar

Object Hierarchy | 関連する C++クラス:PluginRegistrar

継承

SIObject

PluginRegistrar

導入

v4.0

詳細

PluginRegistrar オブジェクトは、プラグイン項目をその他の詳細情報とともに softimage に登録するためにプラグインモジュールによって使用されます。オブジェクトは Softimage によって作成され、プラグインをロード/アンロードするディレクトリの場所や、プラグインのファイル名などの情報が含まれています。

Softimage が起動されると、ロードする各プラグインの PluginRegistrar オブジェクトが作成され、プラグインによって公開されている XSILoadPlugin 関数のエントリポイントに渡されます。Softimage によって収集された情報は、ユーザが必要としたときにプラグイン項目の作成に使用されます。

プラグインがアンロードされると、この特定のプラグインについて PluginRegistrar オブジェクトが作成され、プラグインによって公開されているXSIUnloadPlugin関数のエントリポイントに渡されます(「Callbacks for Self-Installing Plug-ins」を参照)。プラグインによって登録された情報には、Plugin オブジェクトからアクセスします。

メソッド

IsClassOfオペレータ IsEqualToオペレータ RegisterCommand RegisterConverterEvent
RegisterEvent RegisterFilter RegisterMenu RegisterOperator
RegisterProperty RegisterShaderオペレータ RegisterShaderLanguageParserオペレータ RegisterTimerEvent

プロパティ

Application Author Categories Email
Filename FullNameオペレータ Help Language
Major Minor Nameオペレータ NestedObjects
Origin OriginPath Parent Typeオペレータ
URL UserData    
       

JScript の例

/*--------------------------------------------------------------------------

	This example demonstrates the how to the use PluginRegistrar object

	README: Copy and paste the example into the script editor and run (F5).

	The filter will now be listed in the Scene Explorer filter list when 

	the "Source/Clips" view context is selected.

--------------------------------------------------------------------------*/

// This function is required to register a plug-in in Softimage

function  XSILoadPlugin( in_reg )

{

	Application.LogMessage( "PluginRegistrar XSILoadPlugin called" );

	// register plug-in information with the PluginRegistrar object

	in_reg.Author = "Softimage Co." ;

	in_reg.Name = "PluginRegistrar Example";

	in_reg.Help = MakeHTMLPage();

	in_reg.URL = "www.softimage.com";

	in_reg.Email = "webmaster@softimage.com";

	//  the version number of this plug-in

	in_reg.Major = 1;

	in_reg.Minor = 0 ;

	Application.LogMessage( "This plug-in language: " + in_reg.Language );

	// register the cone filter plug-in item 

	in_reg.RegisterFilter( "ConePrimitive", siFilterObject );

	return true;

}

// This non-mandatory function is called when the plug-in is unloaded 

function  XSIUnloadPlugin( in_reg )

{

	Application.LogMessage( "PluginRegistrar XSIUnloadPlugin called" );

	Application.LogMessage( "Name: " + in_reg.Name );

	Application.LogMessage( "Author: " + in_reg.Author);

	Application.LogMessage( "Major: " + in_reg.Major);

	Application.LogMessage( "Minor: " + in_reg.Minor);

	Application.LogMessage( "Language: " + in_reg.Language);

	Application.LogMessage( "URL: " + in_reg.URL);

	Application.LogMessage( "Email: " + in_reg.Email);

	Application.LogMessage( "Help: " + in_reg.Help);

	return(true);

}

function  ConePrimitive_Match( in_context )

{

	var obj = in_context.GetAttribute("Input");

	return obj.IsKindOf( siConePrimType );

}

function  MakeHTMLPage()

{

	// Build the filename + path

	var sHelpFileName = XSIUtils.BuildPath( InstallationPath( siUserPath ), "Data", "HelpMe.html" );

	// Create a standard hello world script file

	fso = XSIFactory.CreateActiveXObject( "Scripting.FileSystemObject" );

	var fHWFile = fso.CreateTextFile( sHelpFileName );

	fHWFile.WriteLine( "<html>" );

	fHWFile.WriteLine( "<head>" );

	fHWFile.WriteLine( "\t" + "<title>Help Page for Testing PluginRegistrar</title>" );

	fHWFile.WriteLine( "</head>");

	fHWFile.WriteLine( "<body>");

	fHWFile.WriteLine( "\t" + "<p>Help! I//m trapped inside this HTML code!</p>" );

	fHWFile.WriteLine( "</body>" );

	fHWFile.WriteLine( "</html>" );

	fHWFile.Close();

	// Return the name of the new command

	return sHelpFileName;

}

//--------------------------------------------------------------------

// Code to bootstrap example into system

//--------------------------------------------------------------------

function ExampleSourceCode()

{

	return "//XSISDK Doc Example\n" +

		ConePrimitive_Match.toString() + "\n" + 

		MakeHTMLPage.toString() + "\n" + 

		XSIUnloadPlugin.toString() + "\n" + 

		XSILoadPlugin.toString();

}

// if we are running from script editor save code to 

// examples addon folder in the user's directory.

if (GetUserPref("ScriptingSessionActive"))

{

	var ex_name 		= "ExPluginRegistrar";

	var ex_subfolder 	= "Plugins";

	var ex_folder 		= "XSISDKDocExamples";

	var ex_langsuffix	= ".js";

	CreateAddonDirectories( InstallationPath(siUserPath), ex_folder );

	var fso = XSIFactory.CreateActiveXObject("Scripting.FileSystemObject");

	var filename = XSIUtils.BuildPath( 

		InstallationPath(siUserAddonPath), 

		ex_folder,

		"Application",

		ex_subfolder,

		ex_name+ex_langsuffix );

	if (!fso.FileExists(filename))

	{

		var f = fso.CreateTextFile ( filename );

		f.write( ExampleSourceCode() );

		f.close();

		Application.LoadPlugin(filename);	

	}

}

関連項目

XSIApplication.Plugins Callbacks for Self-Installing Plug-ins