Browse Source

已有设备的重新创建

dev
刘向辉 3 years ago
parent
commit
f1ca2501a1
  1. 12
      src/app/babylon/controller/info-manager.ts
  2. 20
      src/app/babylon/model/data/model-data/model-data-facility.ts
  3. 10
      src/app/babylon/model/data/model-data/model-data.ts
  4. 2
      src/app/babylon/view/facility-window/facility-window.ts
  5. 2
      src/app/service/babylon/building-basic-infos.service.ts

12
src/app/babylon/controller/info-manager.ts

@ -2,7 +2,7 @@
import { AbstractMesh } from "@babylonjs/core";
import { MarkData } from "../model/data/mark/mark-data";
import { ModelData } from "../model/data/model-data/model-data";
import { FacilityInBuildingType, FacilityType, ModelData_facility } from "../model/data/model-data/model-data-facility";
import { FacilityInBuildingType, FacilityPosType, FacilityType, ModelData_facility } from "../model/data/model-data/model-data-facility";
import { ModelEditData } from "../model/data/model-data/model-edit-data";
import { TransformData } from "../model/data/transform-data";
import { BuildingInfo } from "../model/info/building/building-info";
@ -170,13 +170,21 @@ export class InfoManager {
for (let i = 0; i < facilities.length; i++) {
for (let j = 0; j < facilities[i].facilities.length; j++) {
let mesh = null;
let facilityData = facilities[i].facilities[j]
if (facilityData.posType == FacilityPosType.In) {
mesh = SceneManager.Instance.scene.getMeshByID(facilityData.resName);
}
FacilityWindow.instance.createFacility(
modelEditData.facilities[i].facilities[j],
false,
buildingInfo,
true,
false,
null,//要根据类型,是不是从场景中查找
mesh,//要根据类型,是不是从场景中查找
(modelInfo: ModelInfo_facility) => {
if (ModeManager.currentMode == ModeType.Look) {
modelInfo.setIconEnable(false);//查看模式下隐藏所有设备ui

20
src/app/babylon/model/data/model-data/model-data-facility.ts

@ -10,9 +10,15 @@ import { ConfigManager } from "src/app/babylon/controller/config-manager";
//设备数据
export class ModelData_facility extends ModelData {
posType: FacilityPosType = FacilityPosType.Out;//位置类型
/**
*
*/
posType: FacilityPosType = FacilityPosType.Out;
facilityType: FacilityType = FacilityType.PL;//具体设备类别
/**
*
*/
facilityType: FacilityType = FacilityType.PL;
@Type(() => PropertyData_Base)
propertyData: PropertyData_Base = null;//属性信息
@Type(() => Vector3)
@ -102,8 +108,14 @@ export class ModelData_facility extends ModelData {
//设备位置类型(室内还是室外)
export enum FacilityPosType {
In = "in", //内置在建筑模型中
Out = "out", //在编辑时单独放置
/**
*
*/
In = "in",
/**
*
*/
Out = "out",
}
//设备展示类型

10
src/app/babylon/model/data/model-data/model-data.ts

@ -6,8 +6,14 @@ export class ModelData {
key: string; //身份唯一标识
name: string; //用户定义的名称
resName: string; //资源名称
resPath: string; //资源路径(局部) 可使用 DataManager.getResPath进行构造
/**
* ,mesh的idmesh
*/
resName: string;
/**
* () 使 DataManager.getResPath进行构造
*/
resPath: string;
@Type(() => TransformData)
transformData: TransformData; //变换信息
version: number = 1;//版本号

2
src/app/babylon/view/facility-window/facility-window.ts

@ -622,7 +622,7 @@ export class FacilityWindow extends UIBase {
createFacilityDataFromMesh(mesh: AbstractMesh, type: FacilityType) {
let name = ConfigManager.getFacilityTypeName(type);
let result = new ModelData_facility(mesh.name, type, name, mesh.name, new TransformData(), FacilityPosType.In);
let result = new ModelData_facility(mesh.name, type, name, mesh.id, new TransformData(), FacilityPosType.In);
return result;
}

2
src/app/service/babylon/building-basic-infos.service.ts

@ -40,7 +40,7 @@ export class BuildingBasicInfosService {
name: name,
// content: JSON.stringify(data),
}
return this.http.post<any>(this.baseUrl + this.c_post, JSON.stringify(data), { params })
return this.http.post<any>(this.baseUrl + this.c_post, (data), { params })
.pipe(
catchError((err) => this.handleError(err))
);

Loading…
Cancel
Save