Я визуализирую файл stl. Я не получаю точных координат (xyz). Когда я беру координаты xyz в файле Intersects = raycaster.intersectobjects (objects), он получает пустой массив. Я использую https://www.viewstl.com/plugin/
<div id="stl_cont" style="height:500px;width:100%"></div>
<script>
var objMod = [{ id: 2, filename: "TestGlass.stl", display: "smooth" }];
$(document).ready(function () {
stl_viewer = new StlViewer(document.getElementById("stl_cont"), {
auto_rotate: true,
mouse_zoom: true,
allow_drag_and_drop: true,
models: objMod
});
console.log(stl_viewer);
window.onload = function () {
init();
};
function init() {
debugger;
renderer = new THREE.WebGLRenderer({ antialias: false });
canvas = document.getElementById('myCanvas');//renderer.domElement;
canvasPosition = $(canvas).position();
camera = new THREE.PerspectiveCamera(20, $(canvas).width() / $(canvas).height(), 0.01, 1e10);
scene = new THREE.Scene();
rayCaster = new THREE.Raycaster();
mousePosition = new THREE.Vector2();
scene.add(camera);
var myObjects = new THREE.Mesh();
myObjects.add(stl_viewer);
myObjects.name = 'stl_cont';
scene.add(myObjects);
objects.push(myObjects);
};
var renderer, canvas, canvasPosition, camera, scene, rayCaster, mousePosition, mesh, objects;
window.addEventListener('mousedown', getClicked3DPoint, false);
function getClicked3DPoint(evt) {
evt.preventDefault();
mousePosition.x = ((evt.clientX - canvasPosition.left) / canvas.width) * 2 - 1;
mousePosition.y = -((evt.clientY - canvasPosition.top) / canvas.height) * 2 + 1;
rayCaster.setFromCamera(mousePosition, camera);
var intersects = rayCaster.intersectObject(objects, true);
if (intersects.length > 0)
return intersects[0].point;
};
});
</script>