Я пытаюсь выполнить логическую операцию в импортированном файле сетки STL с помощью функции ThreeCSG.js. Вот код ..Работа с CSG с STLLoader
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 и импортирую файл STL с помощью STLLoader.js.
Я только что начал изучать Three.js и не совсем уверен, поддерживаются ли импортированные файлы сетки ThreeCSG.js. Тем не менее, в результате операции CSG должны работать с импортированными файлами сетки, поскольку они работают с геометриями сетки, создаваемыми в программе.
Любые предложения, пожалуйста?