|
@@ -38,6 +38,21 @@ import vintroduce from "@/components/introduce";
|
|
|
|
|
|
const transitionTime = 2000
|
|
|
|
|
|
+let labelClick = (e) => {
|
|
|
+ if (e.centerCamePosi) {
|
|
|
+ let { x, y, z } = e.centerCamePosi
|
|
|
+ window.transitions.start(
|
|
|
+ window.lerp.vector(window.viewer.camera.position,
|
|
|
+ new window.THREE.Vector3(x, y, z)),
|
|
|
+ transitionTime,
|
|
|
+ () => { },
|
|
|
+ 0/* Delay */,
|
|
|
+ window.easing.easeInOutQuad,
|
|
|
+ 'cameraFly');
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
let infoLabels = [{ "title": "宝珠钮", "posInModel": [-4.6302, 20.0953, 2.9731] },
|
|
|
{ "title": "瓶身", "posInModel": [-11.7969, -1.7939, 3.9055] },
|
|
|
{ "title": "瓶盖", "posInModel": [-6.0636, 16.2615, 3.4633] }]
|
|
@@ -53,7 +68,13 @@ let picLabels = [
|
|
|
-9.9383,
|
|
|
1.517,
|
|
|
8.4702
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ "centerCamePosi": {
|
|
|
+ x: -0.4650665393060424,
|
|
|
+ y: 0.0106499843061736,
|
|
|
+ z: 0.43269467554899155,
|
|
|
+ },
|
|
|
+ clickFun: labelClick
|
|
|
},
|
|
|
{
|
|
|
"title": "牡丹",
|
|
@@ -66,7 +87,13 @@ let picLabels = [
|
|
|
-10.5926,
|
|
|
-6.1392,
|
|
|
1.8685
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ "centerCamePosi": {
|
|
|
+ x: -0.5357516927819861,
|
|
|
+ y: -0.3176574374999963,
|
|
|
+ z: 0.1252552053945424
|
|
|
+ },
|
|
|
+ clickFun: labelClick
|
|
|
},
|
|
|
{
|
|
|
"title": "梅",
|
|
@@ -79,7 +106,13 @@ let picLabels = [
|
|
|
12.4014,
|
|
|
5.4827,
|
|
|
2.9209
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ "centerCamePosi": {
|
|
|
+ x: 0.5882886392634421,
|
|
|
+ y: 0.2267149762544653,
|
|
|
+ z: 0.07836955309150107
|
|
|
+ },
|
|
|
+ clickFun: labelClick
|
|
|
},
|
|
|
{
|
|
|
"title": "松",
|
|
@@ -91,11 +124,18 @@ let picLabels = [
|
|
|
-5.2427,
|
|
|
1.903,
|
|
|
-12.1582
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ "centerCamePosi": {
|
|
|
+ x: -0.2604583387784285,
|
|
|
+ y: 0.00816509249833358,
|
|
|
+ z: -0.5794133027654209
|
|
|
+ },
|
|
|
+ clickFun: labelClick
|
|
|
}
|
|
|
]
|
|
|
|
|
|
|
|
|
+
|
|
|
export default {
|
|
|
components: { vmenu, Loading, vintroduce },
|
|
|
data() {
|
|
@@ -258,9 +298,9 @@ export default {
|
|
|
wlmesh.material.dispose();
|
|
|
}
|
|
|
},
|
|
|
- currentItem(newVal){
|
|
|
+ currentItem(newVal) {
|
|
|
if (newVal != 'pix') {
|
|
|
- window.showWenli = false
|
|
|
+ window.showWenli = false
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -291,25 +331,22 @@ export default {
|
|
|
window.viewer.control.minPolarAngle = 0;
|
|
|
})
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- window.viewer.addEventListener("delayUpdate", (e) => {
|
|
|
- setTimeout(() => {
|
|
|
- if (this.currentItem == 'pic') {
|
|
|
- let centerLabel = window.viewer.getCLabel()
|
|
|
- if (centerLabel) {
|
|
|
- window.viewer.labels.forEach(item => {
|
|
|
- if (centerLabel.title == item.title) {
|
|
|
- this.centerLabel = centerLabel
|
|
|
- }
|
|
|
- else {
|
|
|
- item.elem.removeClass('detailShow')
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ window.viewer.addEventListener("delayUpdate", (e) => {
|
|
|
+ setTimeout(() => {
|
|
|
+ if (this.currentItem == 'pic') {
|
|
|
+ let centerLabel = window.viewer.getCLabel()
|
|
|
+ if (centerLabel) {
|
|
|
+ window.viewer.labels.forEach(item => {
|
|
|
+ if (centerLabel.title == item.title) {
|
|
|
+ this.centerLabel = centerLabel
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ item.elem.removeClass('detailShow')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
})
|
|
|
|
|
|
},
|
|
@@ -602,7 +639,8 @@ export default {
|
|
|
}
|
|
|
|
|
|
&.detailShow {
|
|
|
- z-index: 1088!important;
|
|
|
+ z-index: 1088 !important;
|
|
|
+
|
|
|
&:after {
|
|
|
content: "";
|
|
|
background-image: url('~@/assets/images/point_active.svg');
|