Browse Source

修改箭头材质、高亮选中的效果

dev
刘向辉 3 years ago
parent
commit
48be29b7a1
  1. 4
      src/app/babylon/model/data/mark/other/mark-data-multi-arrow.ts
  2. 2
      src/app/babylon/model/info/mark/model-info-mark.ts
  3. 21
      src/app/babylon/model/info/mark/other/mark-plan-multi-arrow.ts
  4. 3
      src/app/babylon/model/info/model/model-info-facility.ts
  5. 9
      src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item.ts
  6. 65
      src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts

4
src/app/babylon/model/data/mark/other/mark-data-multi-arrow.ts

@ -27,7 +27,7 @@ export class MarkData_multiArrow_JG extends MarkData_multiArrow {
/**
*
*/
color: string = "#d71345";
color: string = "#D50606";
}
/**
@ -37,5 +37,5 @@ export class MarkData_multiArrow_CT extends MarkData_multiArrow {
/**
*
*/
color: string = "#A9FF00";
color: string = "#00FF14";
}

2
src/app/babylon/model/info/mark/model-info-mark.ts

@ -444,6 +444,8 @@ export class ModelInfo_mark extends ModelInfo {
this.node_pz.isVisible = false;
}
result = false;//暂时关闭喷水功能
return result;
}

21
src/app/babylon/model/info/mark/other/mark-plan-multi-arrow.ts

@ -35,14 +35,29 @@ export class ModelInfo_mark_multiArrow extends ModelInfo_mark {
this.mat = new StandardMaterial("mat_multiArrow", SceneManager.Instance.scene);
// if (this.arrowData.color == null) {
// this.mat.emissiveColor = Color3.Green();
// }
// else {
// this.mat.emissiveColor = Color3.FromHexString(this.arrowData.color);
// }
// this.mat.disableLighting = true;
if (this.arrowData.color == null) {
this.mat.emissiveColor = Color3.Green();
this.mat.diffuseColor = Color3.Green();
}
else {
this.mat.emissiveColor = Color3.FromHexString(this.arrowData.color);
this.mat.diffuseColor = Color3.FromHexString(this.arrowData.color);
}
this.mat.specularPower = 0;
this.mat.specularColor = Color3.Black();
this.mat.ambientColor = Color3.FromHexString("#3B3B3B");
this.mat.disableLighting = false;
this.mat.disableLighting = true;
if (isNew) {
instance.arrowData.pointData = [];

3
src/app/babylon/model/info/model/model-info-facility.ts

@ -221,7 +221,8 @@ export class ModelInfo_facility extends ModelInfo {
playShowAnim(play: boolean) {
this.showFollowUI(play);
if (this.modelBox != null) {
if (play) {
let facilityType = (this.modelData as ModelData_facility).facilityType;
if (play && TsTool.stringContain(facilityType, "XF_")) {
SceneManager.Instance.addToHighLight(this.modelBox as Mesh, ModelInfo_facility.c_hightLightColor);
}
else {

9
src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item.ts

@ -125,7 +125,14 @@ export class FacilityInfoUIItem {
if (this.modelInfo.areaInfo != null) {
//计算多边形size
}
BabylonTool.changeCameraTarget(SceneManager.Instance.defaultCamera, this.modelInfo.modelBox, true, size);
let aim = this.modelInfo.modelBox;
if (this.modelInfo.head != null) {
aim = this.modelInfo.head;
}
BabylonTool.changeCameraTarget(SceneManager.Instance.defaultCamera, aim, true, size);
}

65
src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts

@ -460,6 +460,12 @@ export class FacilityInfoInSceneWindow extends UIBase {
case PointerEventTypes.POINTERPICK:
// console.log(eventData.event);
break;
case PointerEventTypes.POINTERDOUBLETAP://双击
if (eventData.pickInfo.hit && !SceneManager.s_isPointerDrag) {
instance.doubleClickModle(eventData.pickInfo);
}
break;
}
}
@ -467,7 +473,7 @@ export class FacilityInfoInSceneWindow extends UIBase {
/**
*
*/
static readonly c_selectJYJColor = Color3.Teal();
static readonly c_selectJYJColor = Color3.Yellow();
/**
*
@ -499,6 +505,7 @@ export class FacilityInfoInSceneWindow extends UIBase {
if ((currentMoudle == null || currentMoudle == JYZInfoMoudleType.JYJ) && facilityInfosByType[i].type == FacilityType.JY_JYJ
|| (currentMoudle == null || currentMoudle == JYZInfoMoudleType.YG) && facilityInfosByType[i].type == FacilityType.JY_YG
|| (currentMoudle == null || currentMoudle == JYZInfoMoudleType.SYG) && facilityInfosByType[i].type == FacilityType.JY_SYGX
|| (currentMoudle == null || currentMoudle == JYZInfoMoudleType.YQHSGX) && facilityInfosByType[i].type == FacilityType.JY_YQHSGX
) {
allJYJInfo = allJYJInfo.concat(facilityInfosByType[i].facilityInfo);
}
@ -543,8 +550,10 @@ export class FacilityInfoInSceneWindow extends UIBase {
let facilityData = facilityInfo.modelData as ModelData_facility;
if (facilityData.facilityType != FacilityType.JY_JYJ &&
facilityData.facilityType != FacilityType.JY_YG &&
facilityData.facilityType != FacilityType.JY_SYGX) {
//只有加油机和油罐和输油管有高亮显示和取消
facilityData.facilityType != FacilityType.JY_SYGX &&
facilityData.facilityType != FacilityType.JY_YQHSGX
) {
//只有加油机和油罐和输油管、油气回收有高亮显示和取消
return;
}
//}
@ -552,10 +561,12 @@ export class FacilityInfoInSceneWindow extends UIBase {
if (play) {
this.currentSelectJYJInfo = facilityInfo;
//正在展示加油机或油罐
//正在展示加油机或油罐或输油管
if (BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.JYJ
|| BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YG
|| BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG) {
|| BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG
|| BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YQHSGX
) {
SceneManager.Instance.removeFromHighLight(facilityInfo.modelBox as Mesh);
}
SceneManager.Instance.addToHighLight(facilityInfo.modelBox as Mesh, FacilityInfoInSceneWindow.c_selectJYJColor);
@ -564,11 +575,11 @@ export class FacilityInfoInSceneWindow extends UIBase {
else {
SceneManager.Instance.removeFromHighLight(facilityInfo.modelBox as Mesh);
//正在展示加油机或油罐
if (BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.JYJ
|| BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YG
|| BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG) {
SceneManager.Instance.addToHighLight(facilityInfo.modelBox as Mesh, ModelInfo_facility.c_hightLightColor);
}
// if (BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.JYJ
// || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YG
// || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG) {
// SceneManager.Instance.addToHighLight(facilityInfo.modelBox as Mesh, ModelInfo_facility.c_hightLightColor);
// }
}
@ -742,6 +753,40 @@ export class FacilityInfoInSceneWindow extends UIBase {
}
/**
*
*/
doubleClickModle(pickInfo: PickingInfo) {
let facilityInfosByType = BuildingWindow.instance.currentBuidngItem.buildingInfo.ModelInfo.facilityInfos;
let result: ModelInfo_facility = null;
for (let i = 0; i < facilityInfosByType.length; i++) {
for (let j = 0; j < facilityInfosByType[i].facilityInfo.length; j++) {
if (facilityInfosByType[i].facilityInfo[j]._modelBox == pickInfo.pickedMesh) {
result = facilityInfosByType[i].facilityInfo[j];
break;
}
let children = facilityInfosByType[i].facilityInfo[j].models;
for (let k = 0; k < children.length; k++) {
if (children[k] == pickInfo.pickedMesh) {
result = facilityInfosByType[i].facilityInfo[j];
break;
}
}
}
}
console.log("双击", result);
if (result != null) {
let facilityItem: FacilityInfoUIItem = FacilityInfoInSceneWindow.instance.getFacilityItem(result);
facilityItem.lookAt();
}
}
}
/**

Loading…
Cancel
Save