'
' This example demonstrates the difference between the Property and Parameter objects
' and what they relate to when you are looking at scene objects in Explorer view
' (with All Nodes scope selected):
'
' Scene_Root (icon looks like:) (TypeName returns:)
' + torus
' + Visibility (gray square) (Property)
' - View Visibility (green tv screen) (simple Parameter)
' + Kinematics (gray square) (Kinematics (a kind of Property))
' + Local (gray square) (KinematicState (a kind of compound Parameter))
' + Pos (folder) (Nothing)
' - X (green tv screen) (simple Parameter)
'
'
NewScene , false
' First create an X3DObject to search on
Set oTorus = Application.ActiveSceneRoot.AddGeometry( "Torus", "MeshSurface" )
'
' Looking for a parameter set and its simple parameter
'
' Get the Visibility parameter set and the View Visibility parameter
Set oVisPSet = oTorus.Properties( "Visibility" )
Set oViewParam = oTorus.Properties( "Visibility" ).Parameters( "viewvis" )
' What have we got?
printType oVisPSet
printType oViewParam
'
' Looking for a parameter set and its compound parameter
'
' Get the Kinematics property, the Local compound parameter and the PosX parameter
Set oKinePSet = oTorus.Kinematics
Set oCompound = oTorus.Kinematics.Local
Set oSimple = oTorus.Kinematics.Local.Parameters( "PosX" )
' What have we got?
printType oKinePSet
printType oCompound
printType oSimple
' Helper Function
Function printType( in_oThing )
' Print name and class name of input object
Application.LogMessage in_oThing & " is a " & TypeName( in_oThing )
End Function
' Expected result:
'INFO : "torus.visibility is a Property"
'INFO : "torus.visibility.viewvis is a Parameter"
'INFO : "torus.kine is a Kinematics"
'INFO : "torus.kine.local is a KinematicState"
'INFO : "torus.kine.local.posx is a Parameter" |