Skip to content

Commit 1e97815

Browse files
committed
add THREE.error/THREE.warning to allow for easy redirection of THREE.js specific errors and warnings.
1 parent d1ae051 commit 1e97815

35 files changed

+158
-131
lines changed

src/Three.js

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,33 @@ if ( Math.sign === undefined ) {
2424

2525
}
2626

27+
28+
THREE.ExceptionErrorHandler = function( message, optionalData ) {
29+
console.error( message );
30+
console.error( optionalData );
31+
var error = new Error( message );
32+
error.optionalData = optionalData;
33+
throw error;
34+
};
35+
36+
THREE.ConsoleErrorHandler = function( message, optionalData ) {
37+
console.error( message );
38+
console.error( optionalData );
39+
};
40+
41+
THREE.ConsoleWarningHandler = function( message, optionalData ) {
42+
console.warn( message );
43+
console.warn( optionalData );
44+
};
45+
46+
THREE.NullHandler = function( message, optionalData ) {
47+
};
48+
49+
// set the default error handlers
50+
THREE.error = THREE.ConsoleErrorHandler;
51+
THREE.warning = THREE.ConsoleWarningHandler;
52+
53+
2754
// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.button
2855

2956
THREE.MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 };
@@ -187,33 +214,33 @@ THREE.RGBA_PVRTC_2BPPV1_Format = 2103;
187214

188215
THREE.Projector = function () {
189216

190-
console.error( 'THREE.Projector has been moved to /examples/js/renderers/Projector.js.' );
217+
THREE.error( 'THREE.Projector has been moved to /examples/js/renderers/Projector.js.' );
191218

192219
this.projectVector = function ( vector, camera ) {
193220

194-
console.warn( 'THREE.Projector: .projectVector() is now vector.project().' );
221+
THREE.warning( 'THREE.Projector: .projectVector() is now vector.project().' );
195222
vector.project( camera );
196223

197224
};
198225

199226
this.unprojectVector = function ( vector, camera ) {
200227

201-
console.warn( 'THREE.Projector: .unprojectVector() is now vector.unproject().' );
228+
THREE.warning( 'THREE.Projector: .unprojectVector() is now vector.unproject().' );
202229
vector.unproject( camera );
203230

204231
};
205232

206233
this.pickingRay = function ( vector, camera ) {
207234

208-
console.error( 'THREE.Projector: .pickingRay() has been removed.' );
235+
THREE.error( 'THREE.Projector: .pickingRay() has been removed.' );
209236

210237
};
211238

212239
};
213240

214241
THREE.CanvasRenderer = function () {
215242

216-
console.error( 'THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js' );
243+
THREE.error( 'THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js' );
217244

218245
this.domElement = document.createElement( 'canvas' );
219246
this.clear = function () {};

src/core/BufferAttribute.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,64 +114,64 @@ THREE.BufferAttribute.prototype = {
114114

115115
THREE.Int8Attribute = function ( data, itemSize ) {
116116

117-
console.warn( 'THREE.Int8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
117+
THREE.warning( 'THREE.Int8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
118118
return new THREE.BufferAttribute( data, itemSize );
119119

120120
};
121121

122122
THREE.Uint8Attribute = function ( data, itemSize ) {
123123

124-
console.warn( 'THREE.Uint8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
124+
THREE.warning( 'THREE.Uint8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
125125
return new THREE.BufferAttribute( data, itemSize );
126126

127127
};
128128

129129
THREE.Uint8ClampedAttribute = function ( data, itemSize ) {
130130

131-
console.warn( 'THREE.Uint8ClampedAttribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
131+
THREE.warning( 'THREE.Uint8ClampedAttribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
132132
return new THREE.BufferAttribute( data, itemSize );
133133

134134

135135
};
136136

137137
THREE.Int16Attribute = function ( data, itemSize ) {
138138

139-
console.warn( 'THREE.Int16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
139+
THREE.warning( 'THREE.Int16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
140140
return new THREE.BufferAttribute( data, itemSize );
141141

142142
};
143143

144144
THREE.Uint16Attribute = function ( data, itemSize ) {
145145

146-
console.warn( 'THREE.Uint16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
146+
THREE.warning( 'THREE.Uint16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
147147
return new THREE.BufferAttribute( data, itemSize );
148148

149149
};
150150

151151
THREE.Int32Attribute = function ( data, itemSize ) {
152152

153-
console.warn( 'THREE.Int32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
153+
THREE.warning( 'THREE.Int32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
154154
return new THREE.BufferAttribute( data, itemSize );
155155

156156
};
157157

158158
THREE.Uint32Attribute = function ( data, itemSize ) {
159159

160-
console.warn( 'THREE.Uint32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
160+
THREE.warning( 'THREE.Uint32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
161161
return new THREE.BufferAttribute( data, itemSize );
162162

163163
};
164164

165165
THREE.Float32Attribute = function ( data, itemSize ) {
166166

167-
console.warn( 'THREE.Float32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
167+
THREE.warning( 'THREE.Float32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
168168
return new THREE.BufferAttribute( data, itemSize );
169169

170170
};
171171

172172
THREE.Float64Attribute = function ( data, itemSize ) {
173173

174-
console.warn( 'THREE.Float64Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
174+
THREE.warning( 'THREE.Float64Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' );
175175
return new THREE.BufferAttribute( data, itemSize );
176176

177177
};

src/core/BufferGeometry.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ THREE.BufferGeometry.prototype = {
3131

3232
if ( attribute instanceof THREE.BufferAttribute === false ) {
3333

34-
console.warn( 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).' );
34+
THREE.warning( 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).' );
3535

3636
this.attributes[ name ] = { array: arguments[ 1 ], itemSize: arguments[ 2 ] };
3737

@@ -277,7 +277,7 @@ THREE.BufferGeometry.prototype = {
277277

278278
if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {
279279

280-
console.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.' );
280+
THREE.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.' );
281281

282282
}
283283

@@ -331,7 +331,7 @@ THREE.BufferGeometry.prototype = {
331331

332332
if ( isNaN( this.boundingSphere.radius ) ) {
333333

334-
console.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.' );
334+
THREE.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.' );
335335

336336
}
337337

@@ -476,7 +476,7 @@ THREE.BufferGeometry.prototype = {
476476
this.attributes.normal === undefined ||
477477
this.attributes.uv === undefined ) {
478478

479-
console.warn( 'Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()' );
479+
THREE.warning( 'Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()' );
480480
return;
481481

482482
}
@@ -764,7 +764,7 @@ THREE.BufferGeometry.prototype = {
764764

765765
if ( geometry instanceof THREE.BufferGeometry === false ) {
766766

767-
console.error( 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry );
767+
THREE.error( 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry );
768768
return;
769769

770770
}

src/core/Face4.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
THREE.Face4 = function ( a, b, c, d, normal, color, materialIndex ) {
66

7-
console.warn( 'THREE.Face4 has been removed. A THREE.Face3 will be created instead.' )
7+
THREE.warning( 'THREE.Face4 has been removed. A THREE.Face3 will be created instead.' )
88
return new THREE.Face3( a, b, c, normal, color, materialIndex );
99

1010
};

src/core/Geometry.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ THREE.Geometry.prototype = {
565565

566566
if ( geometry instanceof THREE.Geometry === false ) {
567567

568-
console.error( 'THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry );
568+
THREE.error( 'THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry );
569569
return;
570570

571571
}
@@ -675,7 +675,7 @@ THREE.Geometry.prototype = {
675675

676676
if ( mesh instanceof THREE.Mesh === false ) {
677677

678-
console.error( 'THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh );
678+
THREE.error( 'THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh );
679679
return;
680680

681681
}

src/core/Object3D.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,29 +83,29 @@ THREE.Object3D.prototype = {
8383

8484
get eulerOrder () {
8585

86-
console.warn( 'THREE.Object3D: .eulerOrder has been moved to .rotation.order.' );
86+
THREE.warning( 'THREE.Object3D: .eulerOrder has been moved to .rotation.order.' );
8787

8888
return this.rotation.order;
8989

9090
},
9191

9292
set eulerOrder ( value ) {
9393

94-
console.warn( 'THREE.Object3D: .eulerOrder has been moved to .rotation.order.' );
94+
THREE.warning( 'THREE.Object3D: .eulerOrder has been moved to .rotation.order.' );
9595

9696
this.rotation.order = value;
9797

9898
},
9999

100100
get useQuaternion () {
101101

102-
console.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );
102+
THREE.warning( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );
103103

104104
},
105105

106106
set useQuaternion ( value ) {
107107

108-
console.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );
108+
THREE.warning( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );
109109

110110
},
111111

@@ -223,7 +223,7 @@ THREE.Object3D.prototype = {
223223

224224
translate: function ( distance, axis ) {
225225

226-
console.warn( 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.' );
226+
THREE.warning( 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.' );
227227
return this.translateOnAxis( axis, distance );
228228

229229
},
@@ -314,7 +314,7 @@ THREE.Object3D.prototype = {
314314

315315
if ( object === this ) {
316316

317-
console.error( "THREE.Object3D.add:", object, "can't be added as a child of itself." );
317+
THREE.error( "THREE.Object3D.add:", object, "can't be added as a child of itself." );
318318
return this;
319319

320320
}
@@ -334,7 +334,7 @@ THREE.Object3D.prototype = {
334334

335335
} else {
336336

337-
console.error( "THREE.Object3D.add:", object, "is not an instance of THREE.Object3D." );
337+
THREE.error( "THREE.Object3D.add:", object, "is not an instance of THREE.Object3D." );
338338

339339
}
340340

@@ -370,7 +370,7 @@ THREE.Object3D.prototype = {
370370

371371
getChildByName: function ( name, recursive ) {
372372

373-
console.warn( 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().' );
373+
THREE.warning( 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().' );
374374
return this.getObjectByName( name, recursive );
375375

376376
},

src/core/Raycaster.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181

8282
} else {
8383

84-
console.error( 'THREE.Raycaster: Unsupported camera type.' );
84+
THREE.error( 'THREE.Raycaster: Unsupported camera type.' );
8585

8686
}
8787

@@ -105,7 +105,7 @@
105105

106106
if ( objects instanceof Array === false ) {
107107

108-
console.log( 'THREE.Raycaster.intersectObjects: objects is not an Array.' );
108+
THREE.warning( 'THREE.Raycaster.intersectObjects: objects is not an Array.' );
109109
return intersects;
110110

111111
}

src/extras/GeometryUtils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ THREE.GeometryUtils = {
66

77
merge: function ( geometry1, geometry2, materialIndexOffset ) {
88

9-
console.warn( 'THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.' );
9+
THREE.warning( 'THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.' );
1010

1111
var matrix;
1212

@@ -25,7 +25,7 @@ THREE.GeometryUtils = {
2525

2626
center: function ( geometry ) {
2727

28-
console.warn( 'THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.' );
28+
THREE.warning( 'THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.' );
2929
return geometry.center();
3030

3131
}

src/extras/ImageUtils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,13 @@ THREE.ImageUtils = {
8181

8282
loadCompressedTexture: function () {
8383

84-
console.error( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' )
84+
THREE.error( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' )
8585

8686
},
8787

8888
loadCompressedTextureCube: function () {
8989

90-
console.error( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' )
90+
THREE.error( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' )
9191

9292
},
9393

src/extras/animation/AnimationHandler.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ THREE.AnimationHandler = {
1010

1111
//
1212

13-
add: function () { console.warn( 'THREE.AnimationHandler.add() has been deprecated.' ); },
14-
get: function () { console.warn( 'THREE.AnimationHandler.get() has been deprecated.' ); },
15-
remove: function () { console.warn( 'THREE.AnimationHandler.remove() has been deprecated.' ); },
13+
add: function () { THREE.warning( 'THREE.AnimationHandler.add() has been deprecated.' ); },
14+
get: function () { THREE.warning( 'THREE.AnimationHandler.get() has been deprecated.' ); },
15+
remove: function () { THREE.warning( 'THREE.AnimationHandler.remove() has been deprecated.' ); },
1616

1717
//
1818

0 commit comments

Comments
 (0)