Compare commits

..

No commits in common. "34f1b1c11fe44b207e6ea837a5373c6500cffdd1" and "21815b8c880066fb733a3669e86df6537574494a" have entirely different histories.

2 changed files with 49 additions and 47 deletions

BIN
dist.7z

Binary file not shown.

View File

@ -59,21 +59,31 @@ 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;
cleanColor(); console.log(123, clickName);
//
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);
}) })
} }
@ -97,29 +107,12 @@ 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();
@ -134,6 +127,11 @@ 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;
@ -209,12 +207,17 @@ 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);
// 线 // 线
@ -224,6 +227,7 @@ 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);
@ -232,7 +236,6 @@ const onMouseDown = (event) => {
} }
const nearCamera = (intersects) => { const nearCamera = (intersects) => {
console.log(5555, intersects)
// //
if (!intersects[0]) { if (!intersects[0]) {
return; return;
@ -249,7 +252,7 @@ const nearCamera = (intersects) => {
initTween( initTween(
positionObj.x, positionObj.x,
positionObj.y, positionObj.y,
positionObj.z + 10 positionObj.z+10
); );
} }
} }
@ -257,7 +260,6 @@ 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 = () => {