UNPKG

4.03 kBSource Map (JSON)View Raw
1{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import THREE from './Three';\n\nexport function alignMesh(mesh: THREE.Mesh, axis = { x: 0.5, y: 0.5, z: 0.5 }) {\n const nAxis = axis || {};\n const box = new THREE.Box3().setFromObject(mesh);\n\n let size = new THREE.Vector3();\n box.getSize(size);\n const min = { x: -box.min.x, y: -box.min.y, z: -box.min.z };\n\n for (const key of Object.keys(nAxis)) {\n const scale = nAxis[key];\n mesh.position[key] = min[key] - size[key] + size[key] * scale;\n }\n}\n\nexport function scaleLongestSideToSize(mesh: THREE.Mesh, size: number) {\n let sizedVector = new THREE.Vector3();\n new THREE.Box3().setFromObject(mesh).getSize(sizedVector);\n\n const { x: width, y: height, z: depth } = sizedVector;\n\n const longest = Math.max(width, Math.max(height, depth));\n const scale = size / longest;\n mesh.scale.set(scale, scale, scale);\n}\n\n/** Used for smoothing imported meshes */\nexport function computeMeshNormals(mesh: THREE.Mesh) {\n mesh.traverse(async (child: any) => {\n if (child instanceof THREE.Mesh) {\n /// Smooth geometry\n const temp = toGeometry(child.geometry);\n temp.mergeVertices();\n temp.computeVertexNormals();\n temp.computeFaceNormals();\n\n child.geometry = new THREE.BufferGeometry().fromGeometry(temp);\n }\n });\n}\n\nexport function toBufferGeometry(\n geometry: THREE.Geometry | THREE.BufferGeometry\n): THREE.BufferGeometry {\n if (geometry instanceof THREE.BufferGeometry) {\n return geometry;\n }\n const bufferGeometry = new THREE.BufferGeometry().fromGeometry(geometry);\n return bufferGeometry;\n}\n\nexport function toGeometry(\n geometry: THREE.Geometry | THREE.BufferGeometry\n): THREE.Geometry {\n if (geometry instanceof THREE.Geometry) {\n return geometry;\n }\n return new THREE.Geometry().fromBufferGeometry(geometry);\n}\n"]}
\No newline at end of file