diff --git a/js/parts/GIKPart.js b/js/parts/GIKPart.js index a1291d00b3875be48a0bae13ede46cb63b9e95dd..25f394be1db24bbcf97d879b57b0ac881a0f6990 100644 --- a/js/parts/GIKPart.js +++ b/js/parts/GIKPart.js @@ -7,11 +7,13 @@ define(['underscore', 'three', 'part', 'bin!gikPartSTL', 'bin!gikEndPartSTL', 's var loader = new THREE.STLLoader(); var unitGeo = preProcessGeo(loader.parse(gikPart)); - var unitGeoEnd = preProcessGeo(loader.parse(gikEndPart)); + var unitGeoEnd = preProcessGeo(loader.parse(gikEndPart), true); - function preProcessGeo(geo){ + function preProcessGeo(geo, endPart){ geo.computeBoundingBox(); - geo.applyMatrix(new THREE.Matrix4().makeTranslation(-(geo.boundingBox.min.x+0.5), + if (endPart) geo.applyMatrix(new THREE.Matrix4().makeTranslation(-(geo.boundingBox.min.x+0.5), + -(geo.boundingBox.min.y+geo.boundingBox.max.y)/2, -(geo.boundingBox.min.z+geo.boundingBox.max.z)/2)); + else geo.applyMatrix(new THREE.Matrix4().makeTranslation(-(geo.boundingBox.min.x+geo.boundingBox.max.x)/2, -(geo.boundingBox.min.y+geo.boundingBox.max.y)/2, -(geo.boundingBox.min.z+geo.boundingBox.max.z)/2)); var unitScale = 1/(1.2699999809265137); geo.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI/2)); diff --git a/js/parts/GIKPartLowPoly.js b/js/parts/GIKPartLowPoly.js index 0aa6ae06c9103aa15df06f6f4d8fe93847d236c7..6eed63b9ed06b51fcda0988a26816e948b23105a 100644 --- a/js/parts/GIKPartLowPoly.js +++ b/js/parts/GIKPartLowPoly.js @@ -8,11 +8,13 @@ define(['underscore', 'three', 'gikPart', 'bin!gikPartLowPolySTL', 'bin!gikEndPa var loader = new THREE.STLLoader(); var unitGeo = preProcessGeo(loader.parse(gikPartLowPoly)); - var unitGeoEnd = preProcessGeo(loader.parse(gikEndPartLowPoly)); + var unitGeoEnd = preProcessGeo(loader.parse(gikEndPartLowPoly), true); - function preProcessGeo(geo){ + function preProcessGeo(geo, endPart){ geo.computeBoundingBox(); - geo.applyMatrix(new THREE.Matrix4().makeTranslation(-(geo.boundingBox.min.x+0.5), + if (endPart) geo.applyMatrix(new THREE.Matrix4().makeTranslation(-(geo.boundingBox.min.x+0.5), + -(geo.boundingBox.min.y+geo.boundingBox.max.y)/2, -(geo.boundingBox.min.z+geo.boundingBox.max.z)/2)); + else geo.applyMatrix(new THREE.Matrix4().makeTranslation(-(geo.boundingBox.min.x+geo.boundingBox.max.x)/2, -(geo.boundingBox.min.y+geo.boundingBox.max.y)/2, -(geo.boundingBox.min.z+geo.boundingBox.max.z)/2)); var unitScale = 1/(1.2699999809265137); geo.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI/2));