v5.0
Returns true if the object implements the class identified by
the siClassID. The method allows you
to test which classes an object can implement and reflects the
hierarchy illustrated in the object's documentation. For example,
the ProxyParameter class supports
its own properties and methods, but also the properties and methods
of the Parameter class and the
SIObject class. This means that
IsClassOf returns true for siProxyParameterID, siParameterID and
siObjectID. On the other hand, a proxy parameter is not a X3DObject, so IsClassOf would return false for
siX3DObjectID.
This method is very similar to the Application.ClassName method with
the exception that it takes an siClassID instead of a string and
you can test for all the classes implemented by a class.
Note: The VBScript TypeName() function and JScript typeof()
function can also be used to report the type name of simple data
types such as a string or integer. For objects, the TypeName()
function will give the same result as the Application.ClassName method but
the typeof() function will only return 'object', the typeof()
function will also return 'object' for variables set to
'null'.
The C++ API has an equivalent methods: SIObject::IsA and
SIObject::IsA and
take exactly the same siClassID
constant.
oBoolean = SIObject.IsClassOf( ClassID ); |
Parameter | Type | Description |
---|---|---|
ClassID | siClassID | The classid to compare with |
// // Demonstrates how to test an object for its implementation classes // var oModel = ActiveSceneRoot.AddModel(); Application.LogMessage( "Is object a model: " + oModel.IsClassOf(siModelID) ); Application.LogMessage( "Is object an x3dobject: " + oModel.IsClassOf(siX3DObjectID) ); Application.LogMessage( "Is object a scene item: " + oModel.IsClassOf(siSceneItemID) ); Application.LogMessage( "Is object a project item: " + oModel.IsClassOf(siProjectItemID) ); Application.LogMessage( "Is object an siobject: " + oModel.IsClassOf(siSIObjectID) ); Application.LogMessage( "Is object a null: " + oModel.IsClassOf(siNullID) ); // Expected result: //INFO : "Is object a model: True" //INFO : "Is object an x3dobject: True" //INFO : "Is object a scene item: True" //INFO : "Is object a project item: True" //INFO : "Is object an siobject: True" //INFO : "Is object a null: False" |
/* The SIObject.IsClassOf() method can be very useful in determining whether the selection contains a 3DObject. */ newscene(null, false); CreateModel(null, null, null, null); Application.LogMessage( "Is the selected "+selection(0).name+" object a 3dobject? " + selection(0).IsClassOf(siX3DObjectID) ); CreatePrim("Sphere", "MeshSurface", null, null); var obj = selection(0); Application.LogMessage( "Is the selected "+selection(0).name+" object a 3dobject? " + selection(0).IsClassOf(siX3DObjectID) ); SelectGeometryComponents("sphere.pnt[1,6-8,14,15,22,29,35,36,40-43,47-50,54-LAST]"); CreateCluster(null); Application.LogMessage( "Is the selected "+selection(0).name+" object a 3dobject? " + selection(0).IsClassOf(siX3DObjectID) ); // Expected result: //INFO : Is the selected Model object a 3dobject? true //INFO : Is the selected sphere object a 3dobject? true //INFO : Is the selected Point object a 3dobject? false |