SIObject

SIObject

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

導入

v1.0

詳細

SIObject は、オブジェクトの名前、タイプ、親など、Softimage オブジェクトモデルの特定のオブジェクトによってサポートされているプロパティとメソッドを表示します。

基本的な Softimage オブジェクトは、GridDataSIVector3Image などの SIObject をサポートしていません(全リストについては、「Object Hierarchy」を参照)。このため、すべてのオブジェクトが SIObject.Name および SIObject.Type をサポートしていると勘違いされないように、注意を促す必要があります。

メソッド

IsClassOfオペレータ IsEqualToオペレータ    
       

プロパティ

Application Categories FullNameオペレータ Help
Nameオペレータ NestedObjects Origin OriginPath
Parent Typeオペレータ    
       

1. VBScript の例

'

'	This example outputs an object's properties

'

Option Explicit

MAIN()

sub main()

	On Error Resume Next

	' Create the scene

	dim oObj

	set oObj = ActiveProject.ActiveScene.Root.AddGeometry("Sphere", "NurbsSurface")

	LogSIObject oObj

end sub

'------------------------------------------------------------------------------

' NAME:		LogSIObject

'

' INPUT:

'

' DESCRIPTION: logs SIObject properties

'------------------------------------------------------------------------------

sub LogSIObject(in_obj)

	Application.LogMessage "Name: " & in_obj.Name

	Application.LogMessage "Class: " & typename(in_obj)

	Application.LogMessage "Type: " & in_obj.Type

	Application.LogMessage "Fullname: " & in_obj.FullName

	Application.LogMessage "Parent: " & in_obj.Parent.Name

	Application.LogMessage "Application : " & in_obj.Application.Name

	Application.LogMessage "Is Equal To Parent ? " & in_obj.IsEqualTo(in_obj.Parent)

	Application.LogMessage "Is Equal To Self ? " & in_obj.IsEqualTo(in_obj)	

end sub

2. VBScript の例

' These objects all support SIObject

Application.LogMessage IsSIObject( ActiveSceneRoot )

Application.LogMessage IsSIObject( Dictionary.GetObject( "Camera" ) )

Application.LogMessage IsSIObject( CreateObject( "XSI.Application" ) )

Application.LogMessage IsSIObject( ActiveSceneRoot.AddNull() )

' A string cannot be accepted without conversion

Application.LogMessage IsSIObject( "Camera" )

' XSICollection and GridData do not support SIObject

Application.LogMessage IsSIObject( CreateObject( "XSI.Collection" ) )

Application.LogMessage IsSIObject( XSIFactory.CreateGridData )

function IsSIObject( in_obj )

	' One way to test if an object supports

	' SIObject is to call a method and see if

	' there is a scripting error.

	' Careful use of "on error resume next"

	' prevents the entire script form halting

	dim strFullName

	on error resume next

	strFullName = in_obj.Fullname

	if ( err <> 0 ) then

		IsSIObject = false

	else

		IsSIObject = true    	

	end if

	' Turn error checking back on

	on error goto 0

end function

' The above example logs the following results:

'INFO : True

'INFO : True

'INFO : True

'INFO : True

'INFO : False

'INFO : False

'INFO : False