|
@@ -1343,7 +1343,7 @@ THREE.ColladaLoader = function () {
|
|
|
for ( var j = 0, jl = input.length; j < jl; j++ ) {
|
|
|
|
|
|
var time = input[j],
|
|
|
- data = sampler.getData( transform.type, j ),
|
|
|
+ data = sampler.getData( transform.type, j, member ),
|
|
|
key = findKey( keys, time );
|
|
|
|
|
|
if ( !key ) {
|
|
@@ -4136,7 +4136,7 @@ THREE.ColladaLoader = function () {
|
|
|
|
|
|
};
|
|
|
|
|
|
- Sampler.prototype.getData = function ( type, ndx ) {
|
|
|
+ Sampler.prototype.getData = function ( type, ndx, member ) {
|
|
|
|
|
|
var data;
|
|
|
|
|
@@ -4182,6 +4182,10 @@ THREE.ColladaLoader = function () {
|
|
|
|
|
|
data = this.output[ ndx ];
|
|
|
|
|
|
+ if ( member && type == 'translate' ) {
|
|
|
+ data = getConvertedTranslation( member, data );
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return data;
|
|
@@ -4739,7 +4743,7 @@ THREE.ColladaLoader = function () {
|
|
|
|
|
|
function setUpConversion() {
|
|
|
|
|
|
- if ( !options.convertUpAxis || colladaUp === options.upAxis ) {
|
|
|
+ if ( options.convertUpAxis !== true || colladaUp === options.upAxis ) {
|
|
|
|
|
|
upConversion = null;
|
|
|
|
|
@@ -4770,7 +4774,7 @@ THREE.ColladaLoader = function () {
|
|
|
|
|
|
function fixCoords( data, sign ) {
|
|
|
|
|
|
- if ( !options.convertUpAxis || colladaUp === options.upAxis ) {
|
|
|
+ if ( options.convertUpAxis !== true || colladaUp === options.upAxis ) {
|
|
|
|
|
|
return;
|
|
|
|
|
@@ -4826,6 +4830,31 @@ THREE.ColladaLoader = function () {
|
|
|
|
|
|
};
|
|
|
|
|
|
+ function getConvertedTranslation( axis, data ) {
|
|
|
+
|
|
|
+ if ( options.convertUpAxis !== true || colladaUp === options.upAxis ) {
|
|
|
+
|
|
|
+ return data;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ switch ( axis ) {
|
|
|
+ case 'X':
|
|
|
+ data = upConversion == 'XtoY' ? data * -1 : data;
|
|
|
+ break;
|
|
|
+ case 'Y':
|
|
|
+ data = upConversion == 'YtoZ' || upConversion == 'YtoX' ? data * -1 : data;
|
|
|
+ break;
|
|
|
+ case 'Z':
|
|
|
+ data = upConversion == 'ZtoY' ? data * -1 : data ;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return data;
|
|
|
+ };
|
|
|
+
|
|
|
function getConvertedVec3( data, offset ) {
|
|
|
|
|
|
var arr = [ data[ offset ], data[ offset + 1 ], data[ offset + 2 ] ];
|