|
@@ -515,6 +515,8 @@ THREE.VRMLLoader = ( function () {
|
|
|
|
|
|
if ( object instanceof THREE.Object3D ) scene.add( object );
|
|
|
|
|
|
+ if ( node.name === 'WorldInfo' ) scene.userData.worldInfo = object;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return scene;
|
|
@@ -652,6 +654,10 @@ THREE.VRMLLoader = ( function () {
|
|
|
build = buildGeometricNode( node );
|
|
|
break;
|
|
|
|
|
|
+ case 'WorldInfo':
|
|
|
+ build = buildWorldInfoNode( node );
|
|
|
+ break;
|
|
|
+
|
|
|
case 'Anchor':
|
|
|
case 'Billboard':
|
|
|
case 'Collision':
|
|
@@ -666,7 +672,6 @@ THREE.VRMLLoader = ( function () {
|
|
|
case 'Script':
|
|
|
case 'Sound':
|
|
|
case 'SpotLight':
|
|
|
- case 'WorldInfo':
|
|
|
|
|
|
case 'CylinderSensor':
|
|
|
case 'PlaneSensor':
|
|
@@ -1442,6 +1447,40 @@ THREE.VRMLLoader = ( function () {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ function buildWorldInfoNode( node ) {
|
|
|
+
|
|
|
+ var worldInfo = {};
|
|
|
+
|
|
|
+ var fields = node.fields;
|
|
|
+
|
|
|
+ for ( var i = 0, l = fields.length; i < l; i ++ ) {
|
|
|
+
|
|
|
+ var field = fields[ i ];
|
|
|
+ var fieldName = field.name;
|
|
|
+ var fieldValues = field.values;
|
|
|
+
|
|
|
+ switch ( fieldName ) {
|
|
|
+
|
|
|
+ case 'title':
|
|
|
+ worldInfo.title = fieldValues[ 0 ];
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'info':
|
|
|
+ worldInfo.info = fieldValues;
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ console.warn( 'THREE.VRMLLoader: Unknown field:', fieldName );
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return worldInfo;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
function buildIndexedFaceSetNode( node ) {
|
|
|
|
|
|
var color, coord, normal, texCoord;
|