|
@@ -237,14 +237,17 @@
|
|
}
|
|
}
|
|
|
|
|
|
createClass( XLoader, [ {
|
|
createClass( XLoader, [ {
|
|
- key: 'load',
|
|
|
|
- value: function load( _arg, onLoad, onProgress, onError ) {
|
|
|
|
|
|
+ key: '_setArgOption',
|
|
|
|
+ value: function _setArgOption( _arg ) {
|
|
|
|
|
|
- var _this = this;
|
|
|
|
|
|
+ var _start = arguments.length > 1 && arguments[ 1 ] !== undefined ? arguments[ 1 ] : 0;
|
|
|
|
|
|
- var loader = new THREE.FileLoader( this.manager );
|
|
|
|
- loader.setResponseType( 'arraybuffer' );
|
|
|
|
- for ( var i = 0; i < _arg.length; i ++ ) {
|
|
|
|
|
|
+ if ( ! _arg ) {
|
|
|
|
+
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ for ( var i = _start; i < _arg.length; i ++ ) {
|
|
|
|
|
|
switch ( i ) {
|
|
switch ( i ) {
|
|
|
|
|
|
@@ -263,12 +266,78 @@
|
|
this.options = {};
|
|
this.options = {};
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }, {
|
|
|
|
+ key: 'load',
|
|
|
|
+ value: function load( _arg, onLoad, onProgress, onError ) {
|
|
|
|
+
|
|
|
|
+ var _this = this;
|
|
|
|
+
|
|
|
|
+ this._setArgOption( _arg );
|
|
|
|
+ var loader = new THREE.FileLoader( this.manager );
|
|
|
|
+ loader.setResponseType( 'arraybuffer' );
|
|
loader.load( this.url, function ( response ) {
|
|
loader.load( this.url, function ( response ) {
|
|
|
|
|
|
_this._parse( response, onLoad );
|
|
_this._parse( response, onLoad );
|
|
|
|
|
|
}, onProgress, onError );
|
|
}, onProgress, onError );
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ }, {
|
|
|
|
+ key: 'fromResponsedData',
|
|
|
|
+ value: function fromResponsedData( _data, _arg, onLoad ) {
|
|
|
|
+
|
|
|
|
+ this._setArgOption( _arg );
|
|
|
|
+ this._parse( _data, onLoad );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }, {
|
|
|
|
+ key: '_readLine',
|
|
|
|
+ value: function _readLine( line ) {
|
|
|
|
+
|
|
|
|
+ var readed = 0;
|
|
|
|
+ while ( true ) {
|
|
|
|
+
|
|
|
|
+ var find = - 1;
|
|
|
|
+ find = line.indexOf( '//', readed );
|
|
|
|
+ if ( find === - 1 ) {
|
|
|
|
+
|
|
|
|
+ find = line.indexOf( '#', readed );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if ( find > - 1 && find < 2 ) {
|
|
|
|
+
|
|
|
|
+ var foundNewLine = - 1;
|
|
|
|
+ foundNewLine = line.indexOf( "\r\n", readed );
|
|
|
|
+ if ( foundNewLine > 0 ) {
|
|
|
|
+
|
|
|
|
+ readed = foundNewLine + 2;
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ foundNewLine = line.indexOf( "\r", readed );
|
|
|
|
+ if ( foundNewLine > 0 ) {
|
|
|
|
+
|
|
|
|
+ readed = foundNewLine + 1;
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ readed = line.indexOf( "\n", readed ) + 1;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return line.substr( readed );
|
|
|
|
+
|
|
}
|
|
}
|
|
}, {
|
|
}, {
|
|
key: '_readLine',
|
|
key: '_readLine',
|
|
@@ -377,7 +446,10 @@
|
|
str += String.fromCharCode( array_buffer[ i ] );
|
|
str += String.fromCharCode( array_buffer[ i ] );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
return str;
|
|
return str;
|
|
|
|
+ // fixme : if decodeText merged, this line enable.
|
|
|
|
+ // return THREE.Loader.decodeText( new Uint8Array( buf ) );
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
@@ -518,7 +590,6 @@
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- this._readFinalize();
|
|
|
|
setTimeout( function () {
|
|
setTimeout( function () {
|
|
|
|
|
|
_this2.onLoad( {
|
|
_this2.onLoad( {
|
|
@@ -877,15 +948,7 @@
|
|
value: function _readNormalVector1( line ) {
|
|
value: function _readNormalVector1( line ) {
|
|
|
|
|
|
var data = this._readLine( line.trim() ).substr( 0, line.length - 2 ).split( ";" );
|
|
var data = this._readLine( line.trim() ).substr( 0, line.length - 2 ).split( ";" );
|
|
- if ( this.options.zflag ) {
|
|
|
|
-
|
|
|
|
- this._currentGeo.normalVectors.push( new THREE.Vector3( parseFloat( data[ 0 ] ) * - 1, parseFloat( data[ 1 ] ) * - 1, parseFloat( data[ 2 ] ) * - 1 ) );
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- this._currentGeo.normalVectors.push( new THREE.Vector3( parseFloat( data[ 0 ] ), parseFloat( data[ 1 ] ), parseFloat( data[ 2 ] ) ) );
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ this._currentGeo.normalVectors.push( new THREE.Vector3( parseFloat( data[ 0 ] ), parseFloat( data[ 1 ] ), parseFloat( data[ 2 ] ) ) );
|
|
|
|
|
|
}
|
|
}
|
|
}, {
|
|
}, {
|
|
@@ -1066,15 +1129,7 @@
|
|
var _nowMat = new THREE.MeshPhongMaterial( {
|
|
var _nowMat = new THREE.MeshPhongMaterial( {
|
|
color: Math.random() * 0xffffff
|
|
color: Math.random() * 0xffffff
|
|
} );
|
|
} );
|
|
- if ( this.options.zflag ) {
|
|
|
|
-
|
|
|
|
- _nowMat.side = THREE.BackSide;
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- _nowMat.side = THREE.FrontSide;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ _nowMat.side = THREE.FrontSide;
|
|
_nowMat.name = this._currentObject.name;
|
|
_nowMat.name = this._currentObject.name;
|
|
var endRead = 0;
|
|
var endRead = 0;
|
|
var find = this._currentObject.data.indexOf( ';;', endRead );
|
|
var find = this._currentObject.data.indexOf( ';;', endRead );
|