|
@@ -76,126 +76,8 @@ CmdSetGeometry.prototype = {
|
|
|
|
|
|
parseGeometry: function ( data ) {
|
|
|
|
|
|
- var geometryLoader = new THREE.JSONLoader();
|
|
|
- var bufferGeometryLoader = new THREE.BufferGeometryLoader();
|
|
|
-
|
|
|
- var geometry;
|
|
|
-
|
|
|
- switch ( data.type ) {
|
|
|
-
|
|
|
- case 'PlaneGeometry':
|
|
|
- case 'PlaneBufferGeometry':
|
|
|
-
|
|
|
- geometry = new THREE[ data.type ](
|
|
|
- data.width,
|
|
|
- data.height,
|
|
|
- data.widthSegments,
|
|
|
- data.heightSegments
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'BoxGeometry':
|
|
|
- case 'CubeGeometry': // backwards compatible
|
|
|
-
|
|
|
- geometry = new THREE.BoxGeometry(
|
|
|
- data.width,
|
|
|
- data.height,
|
|
|
- data.depth,
|
|
|
- data.widthSegments,
|
|
|
- data.heightSegments,
|
|
|
- data.depthSegments
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'CircleGeometry':
|
|
|
-
|
|
|
- geometry = new THREE.CircleGeometry(
|
|
|
- data.radius,
|
|
|
- data.segments
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'CylinderGeometry':
|
|
|
-
|
|
|
- geometry = new THREE.CylinderGeometry(
|
|
|
- data.radiusTop,
|
|
|
- data.radiusBottom,
|
|
|
- data.height,
|
|
|
- data.radialSegments,
|
|
|
- data.heightSegments,
|
|
|
- data.openEnded
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'SphereGeometry':
|
|
|
-
|
|
|
- geometry = new THREE.SphereGeometry(
|
|
|
- data.radius,
|
|
|
- data.widthSegments,
|
|
|
- data.heightSegments,
|
|
|
- data.phiStart,
|
|
|
- data.phiLength,
|
|
|
- data.thetaStart,
|
|
|
- data.thetaLength
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'IcosahedronGeometry':
|
|
|
-
|
|
|
- geometry = new THREE.IcosahedronGeometry(
|
|
|
- data.radius,
|
|
|
- data.detail
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'TorusGeometry':
|
|
|
-
|
|
|
- geometry = new THREE.TorusGeometry(
|
|
|
- data.radius,
|
|
|
- data.tube,
|
|
|
- data.radialSegments,
|
|
|
- data.tubularSegments,
|
|
|
- data.arc
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'TorusKnotGeometry':
|
|
|
-
|
|
|
- geometry = new THREE.TorusKnotGeometry(
|
|
|
- data.radius,
|
|
|
- data.tube,
|
|
|
- data.radialSegments,
|
|
|
- data.tubularSegments,
|
|
|
- data.p,
|
|
|
- data.q,
|
|
|
- data.heightScale
|
|
|
- );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'BufferGeometry':
|
|
|
-
|
|
|
- geometry = bufferGeometryLoader.parse( data );
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case 'Geometry':
|
|
|
-
|
|
|
- geometry = geometryLoader.parse( data.data ).geometry;
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
- geometry.uuid = data.uuid;
|
|
|
- geometry.name = data.name !== undefined ? data.name : '';
|
|
|
- return geometry;
|
|
|
+ var loader = new THREE.ObjectLoader();
|
|
|
+ return loader.parseGeometries( [data] )[ data.uuid ];
|
|
|
|
|
|
}
|
|
|
|