ThreeCSG.js を使用して、インポートされた STL メッシュ ファイルに対してブール演算を実行しようとしています。これがコードです..
function openFile() {
filePath = document.form.selectedFile.value;
var loader = new THREE.STLLoader();
loader.addEventListener('load', function(event) {
//A simple cube geometry imported from STL file.
var geometry = event.content;
var cube_mesh = new THREE.Mesh(geometry);
cube_mesh.position.x = -7;
var cube_bsp = new ThreeBSP(cube_mesh);
//Create a sphere
var sphere_geometry = new THREE.SphereGeometry(1.8, 32, 32);
var sphere_mesh = new THREE.Mesh(sphere_geometry);
sphere_mesh.position.x = -7;
var sphere_bsp = new ThreeBSP(sphere_mesh);
//subtract cube from sphere
var subtract_bsp = cube_bsp.subtract(sphere_bsp);
var result = subtract_bsp.toMesh(new THREE.MeshLambertMaterial({shading: THREE.SmoothShading, map: THREE.ImageUtils.loadTexture('texture.png')}));
result.geometry.computeVertexNormals();
scene.add(result);
});
loader.load(filePath);
}
しかし、うまくいかないようです。three.js R62 を使用し、STLLoader.js を使用して STL ファイルをインポートしています。
Three.js の学習を始めたばかりで、インポートされたメッシュ ファイルが ThreeCSG.js でサポートされているかどうか完全にはわかりません。ただし、理論的には、CSG 操作は、プログラム内で作成されたメッシュ ジオメトリで機能するように、インポートされたメッシュ ファイルで機能する必要があります。
何か提案はありますか?