Skip to content

Instantly share code, notes, and snippets.

@cecilemuller
Last active August 23, 2017 08:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cecilemuller/a783335631f494443ec1ef1c82737991 to your computer and use it in GitHub Desktop.
Save cecilemuller/a783335631f494443ec1ef1c82737991 to your computer and use it in GitHub Desktop.
VRMLScript: calculate the EXTERNPROTO of an undocumented node type
function getExternproto(nodeType){
var code = '';
var created = Browser.createVrmlFromString(nodeType + '{}');
if (created.length == 1){
var node = created[0];
var nodeType = node.getType();
code += 'EXTERNPROTO ' + nodeType + ' [\n';
var count = node.getNumFields();
for (var i = 0; i < count; i++){
var infos = node.getFieldInfo(i);
var fieldType = infos[0];
var fieldDataType = infos[1];
var fieldName = infos[2];
if ((fieldType == 'field') || (fieldType == 'exposedField')){
code += ' ' + fieldType + ' ' + fieldDataType + ' ' + fieldName + ' #!(' + node.getField(fieldName) + ')\n';
} else {
code += ' ' + fieldType + ' ' + fieldDataType + ' ' + fieldName + '\n';
}
}
code += '][\"urn:inet:bitmanagement.de:node:' + nodeType + '\"]';
}
return code;
}
function initialize(){
trace(getExternproto('XBoxController'));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment