浏览代码

Removed all references to the THREE namespace (#9539)

Benjamin Dobell 9 年之前
父节点
当前提交
2d757261ee

+ 5 - 52
src/Three.js

@@ -28,22 +28,8 @@ export { CubeTexture } from './textures/CubeTexture.js';
 export { CanvasTexture } from './textures/CanvasTexture.js';
 export { DepthTexture } from './textures/DepthTexture.js';
 export { TextureIdCount, Texture } from './textures/Texture.js';
-export { ShadowMaterial } from './materials/ShadowMaterial.js';
-export { SpriteMaterial } from './materials/SpriteMaterial.js';
-export { RawShaderMaterial } from './materials/RawShaderMaterial.js';
-export { ShaderMaterial } from './materials/ShaderMaterial.js';
-export { PointsMaterial } from './materials/PointsMaterial.js';
-export { MultiMaterial } from './materials/MultiMaterial.js';
-export { MeshPhysicalMaterial } from './materials/MeshPhysicalMaterial.js';
-export { MeshStandardMaterial } from './materials/MeshStandardMaterial.js';
-export { MeshPhongMaterial } from './materials/MeshPhongMaterial.js';
-export { MeshNormalMaterial } from './materials/MeshNormalMaterial.js';
-export { MeshLambertMaterial } from './materials/MeshLambertMaterial.js';
-export { MeshDepthMaterial } from './materials/MeshDepthMaterial.js';
-export { MeshBasicMaterial } from './materials/MeshBasicMaterial.js';
-export { LineDashedMaterial } from './materials/LineDashedMaterial.js';
-export { LineBasicMaterial } from './materials/LineBasicMaterial.js';
-export { MaterialIdCount, Material } from './materials/Material.js';
+export * from './materials/Materials.js';
+export { MaterialIdCount } from './materials/Material.js';
 export { CompressedTextureLoader } from './loaders/CompressedTextureLoader.js';
 export { BinaryTextureLoader, DataTextureLoader } from './loaders/BinaryTextureLoader.js';
 export { CubeTextureLoader } from './loaders/CubeTextureLoader.js';
@@ -92,10 +78,8 @@ export { AnimationObjectGroup } from './animation/AnimationObjectGroup.js';
 export { AnimationMixer } from './animation/AnimationMixer.js';
 export { AnimationClip } from './animation/AnimationClip.js';
 export { Uniform } from './core/Uniform.js';
-export { InstancedBufferGeometry } from './core/InstancedBufferGeometry.js';
-export { BufferGeometry } from './core/BufferGeometry.js';
-export { DirectGeometry } from './core/DirectGeometry.js';
-export { GeometryIdCount, Geometry } from './core/Geometry.js';
+export * from './core/Geometries.js';
+export { GeometryIdCount } from './core/Geometry.js';
 export { InterleavedBufferAttribute } from './core/InterleavedBufferAttribute.js';
 export { InstancedInterleavedBuffer } from './core/InstancedInterleavedBuffer.js';
 export { InterleavedBuffer } from './core/InterleavedBuffer.js';
@@ -160,38 +144,7 @@ export { BoundingBoxHelper } from './extras/helpers/BoundingBoxHelper.js';
 export { BoxHelper } from './extras/helpers/BoxHelper.js';
 export { ArrowHelper } from './extras/helpers/ArrowHelper.js';
 export { AxisHelper } from './extras/helpers/AxisHelper.js';
-export { WireframeGeometry } from './extras/geometries/WireframeGeometry.js';
-export { ParametricGeometry } from './extras/geometries/ParametricGeometry.js';
-export { TetrahedronGeometry } from './extras/geometries/TetrahedronGeometry.js';
-export { OctahedronGeometry } from './extras/geometries/OctahedronGeometry.js';
-export { IcosahedronGeometry } from './extras/geometries/IcosahedronGeometry.js';
-export { DodecahedronGeometry } from './extras/geometries/DodecahedronGeometry.js';
-export { PolyhedronGeometry } from './extras/geometries/PolyhedronGeometry.js';
-export { TubeGeometry } from './extras/geometries/TubeGeometry.js';
-export { TorusKnotGeometry } from './extras/geometries/TorusKnotGeometry.js';
-export { TorusKnotBufferGeometry } from './extras/geometries/TorusKnotBufferGeometry.js';
-export { TorusGeometry } from './extras/geometries/TorusGeometry.js';
-export { TorusBufferGeometry } from './extras/geometries/TorusBufferGeometry.js';
-export { TextGeometry } from './extras/geometries/TextGeometry.js';
-export { SphereBufferGeometry } from './extras/geometries/SphereBufferGeometry.js';
-export { SphereGeometry } from './extras/geometries/SphereGeometry.js';
-export { RingGeometry } from './extras/geometries/RingGeometry.js';
-export { RingBufferGeometry } from './extras/geometries/RingBufferGeometry.js';
-export { PlaneBufferGeometry } from './extras/geometries/PlaneBufferGeometry.js';
-export { PlaneGeometry } from './extras/geometries/PlaneGeometry.js';
-export { LatheGeometry } from './extras/geometries/LatheGeometry.js';
-export { LatheBufferGeometry } from './extras/geometries/LatheBufferGeometry.js';
-export { ShapeGeometry } from './extras/geometries/ShapeGeometry.js';
-export { ExtrudeGeometry } from './extras/geometries/ExtrudeGeometry.js';
-export { EdgesGeometry } from './extras/geometries/EdgesGeometry.js';
-export { ConeGeometry } from './extras/geometries/ConeGeometry.js';
-export { ConeBufferGeometry } from './extras/geometries/ConeBufferGeometry.js';
-export { CylinderGeometry } from './extras/geometries/CylinderGeometry.js';
-export { CylinderBufferGeometry } from './extras/geometries/CylinderBufferGeometry.js';
-export { CircleBufferGeometry } from './extras/geometries/CircleBufferGeometry.js';
-export { CircleGeometry } from './extras/geometries/CircleGeometry.js';
-export { BoxBufferGeometry } from './extras/geometries/BoxBufferGeometry.js';
-export { BoxGeometry } from './extras/geometries/BoxGeometry.js';
+export * from './extras/geometries/Geometries.js';
 export { ClosedSplineCurve3 } from './extras/curves/ClosedSplineCurve3.js';
 export { CatmullRomCurve3 } from './extras/curves/CatmullRomCurve3.js';
 export { SplineCurve3 } from './extras/curves/SplineCurve3.js';

+ 31 - 0
src/constants.js

@@ -23,6 +23,14 @@ export var AdditiveBlending = 2;
 export var SubtractiveBlending = 3;
 export var MultiplyBlending = 4;
 export var CustomBlending = 5;
+export var BlendingMode = {
+    NoBlending: NoBlending,
+    NormalBlending: NormalBlending,
+    AdditiveBlending: AdditiveBlending,
+    SubtractiveBlending: SubtractiveBlending,
+    MultiplyBlending: MultiplyBlending,
+    CustomBlending: CustomBlending
+};
 export var AddEquation = 100;
 export var SubtractEquation = 101;
 export var ReverseSubtractEquation = 102;
@@ -63,15 +71,38 @@ export var EquirectangularRefractionMapping = 304;
 export var SphericalReflectionMapping = 305;
 export var CubeUVReflectionMapping = 306;
 export var CubeUVRefractionMapping = 307;
+export var TextureMapping = {
+    UVMapping: UVMapping,
+    CubeReflectionMapping: CubeReflectionMapping,
+    CubeRefractionMapping: CubeRefractionMapping,
+    EquirectangularReflectionMapping: EquirectangularReflectionMapping,
+    EquirectangularRefractionMapping: EquirectangularRefractionMapping,
+    SphericalReflectionMapping: SphericalReflectionMapping,
+    CubeUVReflectionMapping: CubeUVReflectionMapping,
+    CubeUVRefractionMapping: CubeUVRefractionMapping
+};
 export var RepeatWrapping = 1000;
 export var ClampToEdgeWrapping = 1001;
 export var MirroredRepeatWrapping = 1002;
+export var TextureWrapping = {
+    RepeatWrapping: RepeatWrapping,
+    ClampToEdgeWrapping: ClampToEdgeWrapping,
+    MirroredRepeatWrapping: MirroredRepeatWrapping
+};
 export var NearestFilter = 1003;
 export var NearestMipMapNearestFilter = 1004;
 export var NearestMipMapLinearFilter = 1005;
 export var LinearFilter = 1006;
 export var LinearMipMapNearestFilter = 1007;
 export var LinearMipMapLinearFilter = 1008;
+export var TextureFilter = {
+    NearestFilter: NearestFilter,
+    NearestMipMapNearestFilter: NearestMipMapNearestFilter,
+    NearestMipMapLinearFilter: NearestMipMapLinearFilter,
+    LinearFilter: LinearFilter,
+    LinearMipMapNearestFilter: LinearMipMapNearestFilter,
+    LinearMipMapLinearFilter: LinearMipMapLinearFilter
+};
 export var UnsignedByteType = 1009;
 export var ByteType = 1010;
 export var ShortType = 1011;

+ 4 - 0
src/core/Geometries.js

@@ -0,0 +1,4 @@
+export { InstancedBufferGeometry } from './InstancedBufferGeometry.js';
+export { BufferGeometry } from './BufferGeometry.js';
+export { DirectGeometry } from './DirectGeometry.js';
+export { Geometry } from './Geometry.js';

+ 32 - 0
src/extras/geometries/Geometries.js

@@ -0,0 +1,32 @@
+export { WireframeGeometry } from './WireframeGeometry.js';
+export { ParametricGeometry } from './ParametricGeometry.js';
+export { TetrahedronGeometry } from './TetrahedronGeometry.js';
+export { OctahedronGeometry } from './OctahedronGeometry.js';
+export { IcosahedronGeometry } from './IcosahedronGeometry.js';
+export { DodecahedronGeometry } from './DodecahedronGeometry.js';
+export { PolyhedronGeometry } from './PolyhedronGeometry.js';
+export { TubeGeometry } from './TubeGeometry.js';
+export { TorusKnotGeometry } from './TorusKnotGeometry.js';
+export { TorusKnotBufferGeometry } from './TorusKnotBufferGeometry.js';
+export { TorusGeometry } from './TorusGeometry.js';
+export { TorusBufferGeometry } from './TorusBufferGeometry.js';
+export { TextGeometry } from './TextGeometry.js';
+export { SphereBufferGeometry } from './SphereBufferGeometry.js';
+export { SphereGeometry } from './SphereGeometry.js';
+export { RingGeometry } from './RingGeometry.js';
+export { RingBufferGeometry } from './RingBufferGeometry.js';
+export { PlaneBufferGeometry } from './PlaneBufferGeometry.js';
+export { PlaneGeometry } from './PlaneGeometry.js';
+export { LatheGeometry } from './LatheGeometry.js';
+export { LatheBufferGeometry } from './LatheBufferGeometry.js';
+export { ShapeGeometry } from './ShapeGeometry.js';
+export { ExtrudeGeometry } from './ExtrudeGeometry.js';
+export { EdgesGeometry } from './EdgesGeometry.js';
+export { ConeGeometry } from './ConeGeometry.js';
+export { ConeBufferGeometry } from './ConeBufferGeometry.js';
+export { CylinderGeometry } from './CylinderGeometry.js';
+export { CylinderBufferGeometry } from './CylinderBufferGeometry.js';
+export { CircleBufferGeometry } from './CircleBufferGeometry.js';
+export { CircleGeometry } from './CircleGeometry.js';
+export { BoxBufferGeometry } from './BoxBufferGeometry.js';
+export { BoxGeometry } from './BoxGeometry.js';

+ 2 - 2
src/loaders/Loader.js

@@ -1,4 +1,4 @@
-import { FaceColors, VertexColors, DoubleSide, BackSide, MirroredRepeatWrapping, RepeatWrapping } from '../constants';
+import { FaceColors, VertexColors, DoubleSide, BackSide, MirroredRepeatWrapping, RepeatWrapping, BlendingMode } from '../constants';
 import { _Math } from '../math/Math';
 import { MaterialLoader } from './MaterialLoader';
 import { TextureLoader } from './TextureLoader';
@@ -140,7 +140,7 @@ Loader.prototype = {
 						json.name = value;
 						break;
 					case 'blending':
-						json.blending = THREE[ value ];
+						json.blending = BlendingMode[ value ];
 						break;
 					case 'colorAmbient':
 					case 'mapAmbient':

+ 2 - 1
src/loaders/MaterialLoader.js

@@ -1,6 +1,7 @@
 import { Vector2 } from '../math/Vector2';
 import { XHRLoader } from './XHRLoader';
 import { DefaultLoadingManager } from './LoadingManager';
+import * as Material from '../materials/Materials';
 
 /**
  * @author mrdoob / http://mrdoob.com/
@@ -50,7 +51,7 @@ Object.assign( MaterialLoader.prototype, {
 
 		}
 
-		var material = new THREE[ json.type ]();
+		var material = new Material[ json.type ]();
 
 		if ( json.uuid !== undefined ) material.uuid = json.uuid;
 		if ( json.name !== undefined ) material.name = json.name;

+ 27 - 19
src/loaders/ObjectLoader.js

@@ -1,3 +1,5 @@
+import { TextureMapping, TextureWrapping, TextureFilter } from '../constants';
+import { Color } from '../math/Color';
 import { Matrix4 } from '../math/Matrix4';
 import { Object3D } from '../core/Object3D';
 import { Group } from '../objects/Group';
@@ -26,11 +28,17 @@ import { MaterialLoader } from './MaterialLoader';
 import { BufferGeometryLoader } from './BufferGeometryLoader';
 import { JSONLoader } from './JSONLoader';
 import { XHRLoader } from './XHRLoader';
+import * as CoreGeometry from '../core/Geometries';
+import * as ExtraGeometry from '../extras/geometries/Geometries';
 
 /**
  * @author mrdoob / http://mrdoob.com/
  */
 
+function resolveGeometryType ( type ) {
+	return CoreGeometry[ type ] || ExtraGeometry[ type ];
+}
+
 function ObjectLoader ( manager ) {
 
 	this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;
@@ -121,7 +129,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'PlaneGeometry':
 					case 'PlaneBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.width,
 							data.height,
 							data.widthSegments,
@@ -134,7 +142,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'BoxBufferGeometry':
 					case 'CubeGeometry': // backwards compatible
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.width,
 							data.height,
 							data.depth,
@@ -148,7 +156,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'CircleGeometry':
 					case 'CircleBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.radius,
 							data.segments,
 							data.thetaStart,
@@ -160,7 +168,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'CylinderGeometry':
 					case 'CylinderBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.radiusTop,
 							data.radiusBottom,
 							data.height,
@@ -176,7 +184,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'ConeGeometry':
 					case 'ConeBufferGeometry':
 
-						geometry = new THREE [ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.radius,
 							data.height,
 							data.radialSegments,
@@ -191,7 +199,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'SphereGeometry':
 					case 'SphereBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.radius,
 							data.widthSegments,
 							data.heightSegments,
@@ -208,7 +216,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'OctahedronGeometry':
 					case 'TetrahedronGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.radius,
 							data.detail
 						);
@@ -218,7 +226,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'RingGeometry':
 					case 'RingBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.innerRadius,
 							data.outerRadius,
 							data.thetaSegments,
@@ -232,7 +240,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'TorusGeometry':
 					case 'TorusBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.radius,
 							data.tube,
 							data.radialSegments,
@@ -245,7 +253,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'TorusKnotGeometry':
 					case 'TorusKnotBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.radius,
 							data.tube,
 							data.tubularSegments,
@@ -259,7 +267,7 @@ Object.assign( ObjectLoader.prototype, {
 					case 'LatheGeometry':
 					case 'LatheBufferGeometry':
 
-						geometry = new THREE[ data.type ](
+						geometry = new (resolveGeometryType( data.type ))(
 							data.points,
 							data.segments,
 							data.phiStart,
@@ -385,13 +393,13 @@ Object.assign( ObjectLoader.prototype, {
 
 	parseTextures: function ( json, images ) {
 
-		function parseConstant( value ) {
+		function parseConstant( value, type ) {
 
 			if ( typeof( value ) === 'number' ) return value;
 
 			console.warn( 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value );
 
-			return THREE[ value ];
+			return type[ value ];
 
 		}
 
@@ -422,19 +430,19 @@ Object.assign( ObjectLoader.prototype, {
 
 				if ( data.name !== undefined ) texture.name = data.name;
 
-				if ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping );
+				if ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping, TextureMapping );
 
 				if ( data.offset !== undefined ) texture.offset.fromArray( data.offset );
 				if ( data.repeat !== undefined ) texture.repeat.fromArray( data.repeat );
 				if ( data.wrap !== undefined ) {
 
-					texture.wrapS = parseConstant( data.wrap[ 0 ] );
-					texture.wrapT = parseConstant( data.wrap[ 1 ] );
+					texture.wrapS = parseConstant( data.wrap[ 0 ], TextureWrapping );
+					texture.wrapT = parseConstant( data.wrap[ 1 ], TextureWrapping );
 
 				}
 
-				if ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter );
-				if ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter );
+				if ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter, TextureFilter );
+				if ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter, TextureFilter );
 				if ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy;
 
 				if ( data.flipY !== undefined ) texture.flipY = data.flipY;
@@ -493,7 +501,7 @@ Object.assign( ObjectLoader.prototype, {
 
 						if ( Number.isInteger( data.background ) ) {
 
-							object.background = new THREE.Color( data.background );
+							object.background = new Color( data.background );
 
 						}
 

+ 16 - 0
src/materials/Materials.js

@@ -0,0 +1,16 @@
+export { ShadowMaterial } from './ShadowMaterial.js';
+export { SpriteMaterial } from './SpriteMaterial.js';
+export { RawShaderMaterial } from './RawShaderMaterial.js';
+export { ShaderMaterial } from './ShaderMaterial.js';
+export { PointsMaterial } from './PointsMaterial.js';
+export { MultiMaterial } from './MultiMaterial.js';
+export { MeshPhysicalMaterial } from './MeshPhysicalMaterial.js';
+export { MeshStandardMaterial } from './MeshStandardMaterial.js';
+export { MeshPhongMaterial } from './MeshPhongMaterial.js';
+export { MeshNormalMaterial } from './MeshNormalMaterial.js';
+export { MeshLambertMaterial } from './MeshLambertMaterial.js';
+export { MeshDepthMaterial } from './MeshDepthMaterial.js';
+export { MeshBasicMaterial } from './MeshBasicMaterial.js';
+export { LineDashedMaterial } from './LineDashedMaterial.js';
+export { LineBasicMaterial } from './LineBasicMaterial.js';
+export { Material } from './Material.js';