// import * as THREE from 'three'; // import updateReferencePolesheight from './updateReferencePolesheight'; // import * as Types from "../../../../types/world/worldTypes"; // function addAndUpdateReferencePillar( // raycaster: THREE.Raycaster, // floorGroup: Types.RefGroup, // referencePole: Types.RefMesh // ): void { // ////////// Find Pillars position and scale based on the pointer interaction ////////// // let Roofs = raycaster.intersectObjects(floorGroup.current.children, true); // const intersected = Roofs.find(intersect => intersect.object.name.includes("Roof") || intersect.object.name.includes("Floor")); // if (intersected) { // const intersectionPoint = intersected.point; // raycaster.ray.origin.copy(intersectionPoint); // raycaster.ray.direction.set(0, -1, 0); // const belowIntersections = raycaster.intersectObjects(floorGroup.current.children, true); // const validIntersections = belowIntersections.filter(intersect => intersect.object.name.includes("Floor")); // let distance: Types.Number; // if (validIntersections.length > 1) { // let valid = validIntersections.find(intersectedBelow => intersected.point.distanceTo(intersectedBelow.point) > 3); // if (valid) { // updateReferencePolesheight(intersectionPoint, valid.distance, referencePole, floorGroup); // } else { // const belowPoint = new THREE.Vector3(intersectionPoint.x, 0, intersectionPoint.z); // distance = intersected.point.distanceTo(belowPoint); // if (distance > 3) { // updateReferencePolesheight(intersectionPoint, distance, referencePole, floorGroup); // } // } // } else { // const belowPoint = new THREE.Vector3(intersectionPoint.x, 0, intersectionPoint.z); // distance = intersected.point.distanceTo(belowPoint); // if (distance > 3) { // updateReferencePolesheight(intersectionPoint, distance, referencePole, floorGroup); // } // } // } else { // if (referencePole.current) { // (referencePole.current.material).dispose(); // (referencePole.current.geometry).dispose(); // floorGroup.current.remove(referencePole.current); // referencePole.current = null; // } // } // } // export default addAndUpdateReferencePillar;