Compare commits

..

3 Commits

Author SHA1 Message Date
wangqiujuan0808 34f1b1c11f 123 2023-12-09 03:35:34 +08:00
wangqiujuan0808 13c5c1a86f Merge branch 'main' of https://git.shikicc.com/wangqiujuan0808/bw into main 2023-12-09 00:53:55 +08:00
wangqiujuan0808 71f00363bd 123 2023-12-09 00:53:51 +08:00
2 changed files with 47 additions and 49 deletions

BIN
dist.7z Normal file

Binary file not shown.

View File

@ -59,31 +59,21 @@ watch(() => props.sceneUrl, val => {
init(); init();
loadSence(); loadSence();
}); });
let objArr = [];
let objM = [];
// //
Bus.on('clickBuild', (isParent) => { Bus.on('clickBuild', (isParent) => {
// Todo // Todo
console.log('clickBuild', isParent); console.log('clickBuild', isParent);
if (!isParent) {// if (!isParent) {//
var clickName = bimStore().activateTree.clickName; var clickName = bimStore().activateTree.clickName;
console.log(123, clickName); cleanColor();
//
if (selectedObject && selectedMaterial) {
selectedObject.material = selectedMaterial;
selectedObject = null;
selectedMaterial = null;
}
var Floor = gltfObj.value.scene.getObjectByName(clickName); var Floor = gltfObj.value.scene.getObjectByName(clickName);
if (Floor.length > 0) {
//
selectedObject = Floor;
selectedMaterial = selectedObject.material;
}
console.log(1, Floor);
Floor.traverse(e => { Floor.traverse(e => {
e.material = new THREE.MeshLambertMaterial({ e.material = new THREE.MeshLambertMaterial({
color: 0x00ff00, color: 0x00ff00,
}); });
nearCamera(e);
}) })
} }
@ -107,12 +97,29 @@ onMounted(() => {
renderScene(); renderScene();
document.addEventListener("click", onMouseDown); document.addEventListener("click", onMouseDown);
}); });
const cleanColor = () => {
//
if (objArr.length > 0 && objM.length > 0) {
objArr.forEach((ele, index) => {
console.log(objM[index]);
ele.material = objM[index]
})
objArr = [];
objM = [];
}
gltfObj.value.scene.traverse(e => {
objArr.push(e);
objM.push(e.material);
})
}
const init = () => { const init = () => {
scene = new THREE.Scene("#00ffff"); scene = new THREE.Scene("#00ffff");
// const texture = new THREE.TextureLoader().load(homeIcon); const texture = new THREE.TextureLoader().load(homeIcon);
// texture.mapping = THREE.EquirectangularReflectionMapping; texture.mapping = THREE.EquirectangularReflectionMapping;
// scene.background = texture scene.background = texture
// scene.environment = texture scene.environment = texture
const canvas = document.querySelector("#three"); const canvas = document.querySelector("#three");
var cubeLoader = new THREE.CubeTextureLoader(); var cubeLoader = new THREE.CubeTextureLoader();
@ -127,11 +134,6 @@ const init = () => {
// //
camera.position.set(-192.936, 180.990, -28.179); camera.position.set(-192.936, 180.990, -28.179);
camera.lookAt(scene.position); camera.lookAt(scene.position);
<<<<<<< HEAD
=======
>>>>>>> c61eb163e061fb935e88a57641d1dc70e363d7b5
// //
orbit = new OrbitControls(camera, renderer.domElement); orbit = new OrbitControls(camera, renderer.domElement);
orbit.autoRotate = true; orbit.autoRotate = true;
@ -207,17 +209,12 @@ let selectedObject = null;
let selectedMaterial = null; let selectedMaterial = null;
const onMouseDown = (event) => { const onMouseDown = (event) => {
var raycaster = new THREE.Raycaster()
//
if (selectedObject && selectedMaterial) {
selectedObject.material = selectedMaterial;
selectedObject = null;
selectedMaterial = null;
}
// //
mouse.x = (event.clientX / window.innerWidth) * 2 - 1; mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
var raycaster = new THREE.Raycaster()
cleanColor();
// 线 // 线
raycaster.setFromCamera(mouse, camera); raycaster.setFromCamera(mouse, camera);
// 线 // 线
@ -227,7 +224,6 @@ const onMouseDown = (event) => {
const clickedObject = intersects[0].object; const clickedObject = intersects[0].object;
// //
selectedObject = clickedObject; selectedObject = clickedObject;
selectedMaterial = clickedObject.material;
// 绿 // 绿
selectedObject.material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); selectedObject.material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
nearCamera(intersects); nearCamera(intersects);
@ -236,6 +232,7 @@ const onMouseDown = (event) => {
} }
const nearCamera = (intersects) => { const nearCamera = (intersects) => {
console.log(5555, intersects)
// //
if (!intersects[0]) { if (!intersects[0]) {
return; return;
@ -260,6 +257,7 @@ const nearCamera = (intersects) => {
const toHomeView = () => { const toHomeView = () => {
camera.position.set(-192.936, 180.990, -28.179); camera.position.set(-192.936, 180.990, -28.179);
camera.lookAt(scene.position); camera.lookAt(scene.position);
cleanColor();
} }
// //
const toHomeView1 = () => { const toHomeView1 = () => {