Commit 029270c7 authored by suhuiguang's avatar suhuiguang

1.修改多线程

parent 65a1bc65
......@@ -3,6 +3,8 @@ import * as helper from 'base-r3d/lib/utils/helper';
import { FscSerUrl, FasSerUrl } from './../consts/urlConsts';
import { commonGet, commonPost, singleFetch } from './../utils/request';
import { encodeUrl } from 'amos-tool';
//---------------- 加载模型、解析模型json -----------
export const getObjFromNet = (url, callback) => {
return singleFetch(url).then(data => {
......@@ -10,10 +12,15 @@ export const getObjFromNet = (url, callback) => {
// 临时将 asyncModels 也放在主线程
const { basePath, asyncModels = [] } = data;
const _asyncModels = asyncModels.map(m => ({
basePath,
...m
}));
const _asyncModels = asyncModels.map(m => {
const { objName, mtlName, ...rest } = m;
return {
basePath,
...rest,
objName: encodeUrl(objName),
mtlName: encodeUrl(mtlName)
};
});
// const _objs = objs.concat(_asyncModels);
callback(objs, _asyncModels);
......
......@@ -2,74 +2,96 @@
"sceneName": "station-yinan",
"basePath": "/mods/components/3dviewConvertor/threeres/models/yinan/",
"models": [
{ "objName": "ground.obj", "mtlName": "ground.mtl", "modelLevel": "Park" },
{ "objName": "helper-text.obj", "mtlName": "helper-text.mtl", "modelLevel": "Stuff" },
{ "objName": "building_01.obj", "mtlName": "building_01.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_01" },
{ "objName": "building_02.obj", "mtlName": "building_02.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_02" },
{ "objName": "building_03.obj", "mtlName": "building_03.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_03" },
{ "objName": "building_04.obj", "mtlName": "building_04.mtl", "modelLevel": "Building" },
{ "objName": "building_05.obj", "mtlName": "building_05.mtl", "modelLevel": "Building" },
{ "objName": "Complex-building.obj", "mtlName": "Complex-building.mtl", "modelLevel": "Building" },
{ "objName": "gatehouse.obj", "mtlName": "gatehouse.mtl", "modelLevel": "Building" }
],
"indoors": [
{ "primaryKey": "valve-hall_01", "children": [
{ "objName": "valve-hall_01#roof.obj", "mtlName": "valve-hall_01#roof.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#wall.obj", "mtlName": "valve-hall_01#wall.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t1.obj", "mtlName": "valve-hall_01#t1.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t2.obj", "mtlName": "valve-hall_01#t2.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t3.obj", "mtlName": "valve-hall_01#t3.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t4.obj", "mtlName": "valve-hall_01#t4.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t5.obj", "mtlName": "valve-hall_01#t5.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t6.obj", "mtlName": "valve-hall_01#t6.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t7.obj", "mtlName": "valve-hall_01#t7.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t8.obj", "mtlName": "valve-hall_01#t8.mtl", "modelLevel": "Stuff" }
]},
{ "primaryKey": "valve-hall_02", "children": [
{ "objName": "valve-hall_02#roof.obj", "mtlName": "valve-hall_02#roof.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#wall.obj", "mtlName": "valve-hall_02#wall.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t1.obj", "mtlName": "valve-hall_02#t1.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t2.obj", "mtlName": "valve-hall_02#t2.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t3.obj", "mtlName": "valve-hall_02#t3.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t4.obj", "mtlName": "valve-hall_02#t4.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t5.obj", "mtlName": "valve-hall_02#t5.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t6.obj", "mtlName": "valve-hall_02#t6.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t7.obj", "mtlName": "valve-hall_02#t7.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t8.obj", "mtlName": "valve-hall_02#t8.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t9.obj", "mtlName": "valve-hall_02#t9.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t10.obj", "mtlName": "valve-hall_02#t10.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t11.obj", "mtlName": "valve-hall_02#t11.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t12.obj", "mtlName": "valve-hall_02#t12.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t13.obj", "mtlName": "valve-hall_02#t13.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t14.obj", "mtlName": "valve-hall_02#t14.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t15.obj", "mtlName": "valve-hall_02#t15.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t16.obj", "mtlName": "valve-hall_02#t16.mtl", "modelLevel": "Stuff" }
]},
{ "primaryKey": "valve-hall_03", "children": [
{ "objName": "valve-hall_03#roof.obj", "mtlName": "valve-hall_03#roof.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#wall.obj", "mtlName": "valve-hall_03#wall.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t1.obj", "mtlName": "valve-hall_03#t1.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t2.obj", "mtlName": "valve-hall_03#t2.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t3.obj", "mtlName": "valve-hall_03#t3.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t4.obj", "mtlName": "valve-hall_03#t4.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t5.obj", "mtlName": "valve-hall_03#t5.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t6.obj", "mtlName": "valve-hall_03#t6.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t7.obj", "mtlName": "valve-hall_03#t7.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t8.obj", "mtlName": "valve-hall_03#t8.mtl", "modelLevel": "Stuff" }
]}
{ "objName": "ground.obj", "mtlName": "ground.mtl", "modelLevel": "Park","userData": {"key": "ground", "level": "root" } },
{ "objName": "helper-text.obj", "mtlName": "helper-text.mtl", "modelLevel": "Stuff" ,"userData": {"key": "helper-text", "level": "root" }},
{ "objName": "building_01.obj", "mtlName": "building_01.mtl", "modelLevel": "Building",
"userData": {
"key": "building_01",
"level": "root" ,
"parentKey": "",
"fitView": {
"position": [-125.24438800571633, 37.31694518022703, 37.45503575603876],
"target": [-82.16651609803264, 0.2787801682213826, 3.8565986056023336]
}
}
},
{ "objName": "building_02.obj", "mtlName": "building_02.mtl", "modelLevel": "Building",
"userData": {
"key": "building_02",
"level": "root" ,
"parentKey": "",
"fitView": {
"position": [-6.892904397414338, 33.66816388530167, 45.464966257474764],
"target": [-29.492637996950595, -0.029036413078703773, -0.14266102890052573]
}
}
},
{ "objName": "building_03.obj", "mtlName": "building_03.mtl", "modelLevel": "Building",
"userData": {
"key": "building_03",
"level": "root" ,
"parentKey": "",
"fitView": {
"position": [71.88616384445248, 37.78356236595482, 6.803086007181708],
"target": [-47.2223570471867, -39.42491207712449, -5.377338476592742]
}
}
},
{ "objName": "building_04.obj", "mtlName": "building_04.mtl", "modelLevel": "Building" ,"userData": {"key": "building_04", "level": "root" }},
{ "objName": "building_05.obj", "mtlName": "building_05.mtl", "modelLevel": "Building" ,"userData": {"key": "building_05", "level": "root" }},
{ "objName": "Complex-building.obj", "mtlName": "Complex-building.mtl", "modelLevel": "Building" ,"userData": {"key": "Complex-building", "level": "root" }},
{ "objName": "gatehouse.obj", "mtlName": "gatehouse.mtl", "modelLevel": "Building" ,"userData": {"key": "gatehouse", "level": "root" }}
],
"asyncModels": [
{ "objName": "electric-tower_01.obj", "mtlName": "electric-tower_01.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_02.obj", "mtlName": "electric-tower_02.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_03.obj", "mtlName": "electric-tower_03.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_04.obj", "mtlName": "electric-tower_04.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_05.obj", "mtlName": "electric-tower_05.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_06.obj", "mtlName": "electric-tower_06.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_07.obj", "mtlName": "electric-tower_07.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_08.obj", "mtlName": "electric-tower_08.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_09.obj", "mtlName": "electric-tower_09.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_10.obj", "mtlName": "electric-tower_10.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_11.obj", "mtlName": "electric-tower_11.mtl", "modelLevel": "Building" }
{ "objName": "electric-tower_01.obj", "mtlName": "electric-tower_01.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_01", "level": "root" }},
{ "objName": "electric-tower_02.obj", "mtlName": "electric-tower_02.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_02", "level": "root" }},
{ "objName": "electric-tower_03.obj", "mtlName": "electric-tower_03.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_03", "level": "root" }},
{ "objName": "electric-tower_04.obj", "mtlName": "electric-tower_04.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_04", "level": "root" }},
{ "objName": "electric-tower_05.obj", "mtlName": "electric-tower_05.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_05", "level": "root" }},
{ "objName": "electric-tower_06.obj", "mtlName": "electric-tower_06.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_06", "level": "root" }},
{ "objName": "electric-tower_07.obj", "mtlName": "electric-tower_07.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_07", "level": "root" }},
{ "objName": "electric-tower_08.obj", "mtlName": "electric-tower_08.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_08", "level": "root" }},
{ "objName": "electric-tower_09.obj", "mtlName": "electric-tower_09.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_09", "level": "root" }},
{ "objName": "electric-tower_10.obj", "mtlName": "electric-tower_10.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_10", "level": "root" }},
{ "objName": "electric-tower_11.obj", "mtlName": "electric-tower_11.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_11", "level": "root" }},
{ "objName": "valve-hall_01#roof.obj", "mtlName": "valve-hall_01#roof.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_roof", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#wall.obj", "mtlName": "valve-hall_01#wall.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_wall", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t1.obj", "mtlName": "valve-hall_01#t1.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t1", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t2.obj", "mtlName": "valve-hall_01#t2.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t2", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t3.obj", "mtlName": "valve-hall_01#t3.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t3", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t4.obj", "mtlName": "valve-hall_01#t4.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t4", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t5.obj", "mtlName": "valve-hall_01#t5.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t5", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t6.obj", "mtlName": "valve-hall_01#t6.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t6", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t7.obj", "mtlName": "valve-hall_01#t7.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t7", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t8.obj", "mtlName": "valve-hall_01#t8.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t8", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_02#roof.obj", "mtlName": "valve-hall_02#roof.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_roof", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#wall.obj", "mtlName": "valve-hall_02#wall.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_wall", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t1.obj", "mtlName": "valve-hall_02#t1.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t1", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t2.obj", "mtlName": "valve-hall_02#t2.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t2", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t3.obj", "mtlName": "valve-hall_02#t3.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t3", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t4.obj", "mtlName": "valve-hall_02#t4.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t4", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t5.obj", "mtlName": "valve-hall_02#t5.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t5", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t6.obj", "mtlName": "valve-hall_02#t6.mtl", "modelLevel": "Stuff" , "userData": {"key": "valve-hall_02_t6", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t7.obj", "mtlName": "valve-hall_02#t7.mtl", "modelLevel": "Stuff" , "userData": {"key": "valve-hall_02_t7", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t8.obj", "mtlName": "valve-hall_02#t8.mtl", "modelLevel": "Stuff" , "userData": {"key": "valve-hall_02_t8", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t9.obj", "mtlName": "valve-hall_02#t9.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t9", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t10.obj", "mtlName": "valve-hall_02#t10.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t10", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t11.obj", "mtlName": "valve-hall_02#t11.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t11", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t12.obj", "mtlName": "valve-hall_02#t12.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t12", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t13.obj", "mtlName": "valve-hall_02#t13.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t13", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t14.obj", "mtlName": "valve-hall_02#t14.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t14", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t15.obj", "mtlName": "valve-hall_02#t15.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t15", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t16.obj", "mtlName": "valve-hall_02#t16.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t16", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_03#roof.obj", "mtlName": "valve-hall_03#roof.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_roof", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#wall.obj", "mtlName": "valve-hall_03#wall.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_wall", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t1.obj", "mtlName": "valve-hall_03#t1.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t1", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t2.obj", "mtlName": "valve-hall_03#t2.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t2", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t3.obj", "mtlName": "valve-hall_03#t3.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t3", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t4.obj", "mtlName": "valve-hall_03#t4.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t4", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t5.obj", "mtlName": "valve-hall_03#t5.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t5", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t6.obj", "mtlName": "valve-hall_03#t6.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t6", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t7.obj", "mtlName": "valve-hall_03#t7.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t7", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t8.obj", "mtlName": "valve-hall_03#t8.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t8", "level": "sub" ,"parentKey": "building_03"}}
],
"version": "1.0.0"
}
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { utils,UUID, deepCopy } from 'amos-tool';
import { UUID, deepCopy } from 'amos-tool';
import { PubSub } from 'ray-eventpool';
import { Connect as UIConnect, message, AmosAlert,Modal } from 'amos-framework';
import { Connect as UIConnect, message } from 'amos-framework';
import { FatLine } from 'amos-3d/lib/advanced';
import A3DDesigner, { Connect, FireObject,DESIGNER_CONSTS,PolygonRegion } from 'amos-3d/lib/designer';
import WorkerObjContent from 'amos-3d/lib/worker/WorkerObjContent';
......@@ -13,9 +13,17 @@ import MaskContent from './MaskContent';
import { getObjFromNet, initView3DAction, query3DStatistics, pointModelistAction } from '../services/3dService';
import { desigerConf, desigerHelperConfig } from './conf';
import PointsPool from './PointsPool';
import PromptModal from './PromptModal'
import PromptModal from './PromptModal';
import { eventTopics, isControllerEvent, isManualOperate } from './consts';
import { executeView3dCMD, parseManual, parseBubbleMarkers, tirggerPlanTopic, tirggerTransTopic } from './dataProcessor';
import {
executeView3dCMD,
parseManual,
parseBubbleMarkers,
tirggerPlanTopic,
tirggerTransTopic,
cacheObjsSave,
flyToSubView
} from './dataProcessor';
import {
dealTroubleMarkers,
assembleTroubleView,
......@@ -32,7 +40,7 @@ import {
flickerTroubleMarkers
} from './ruleActionView';
import { lineData } from './datas';
import { getAreaTreeAction, getPointTypeAction, getPointTreeAction, getPointListAction,saveAreaDataAction,savePointListAction } from '../services/moduleEditServices';
import { getAreaTreeAction, getPointTypeAction, getPointTreeAction,saveAreaDataAction,savePointListAction } from '../services/moduleEditServices';
import AreaLeftTree from './moduleEditComponent/AreaLeftTree';
import PointLeftTree from './moduleEditComponent/PointLeftTree';
import RightEditPointPanel from './moduleEditComponent/RightEditPointPanel';
......@@ -40,6 +48,7 @@ import RightEditRegionPanel from './moduleEditComponent/RightEditRegionPanel';
import { EVENTS_CONSTS } from '../consts/EventConsts';
import ExceptionArea from './exceptionArea/ExceptionArea';
import { exceptionRegionListAction,getPointsByRegionIdAction } from '../services/panoramicService';
import { chunk } from '../utils/MathUtils';
const AmosConfig = endConf.AmosConfig;
......@@ -166,6 +175,8 @@ class View3D extends Component {
onMouseMove: this.onMouseMove
};
this._marker = [];
this._cacheObj = {};//3维模型对象缓存
this.processorLevel = {};//3维模型对应关系缓存
}
componentDidMount() {
......@@ -261,6 +272,7 @@ class View3D extends Component {
this.lensJumpFactory.jumpRoot(obj => {
this.lensJumpFactory.fadeIn(obj);
});
this.outlineFactory.toggleOutline([]);//清除选中
this.lensLevel = LENS_LEVEL.ROOT;
}
});
......@@ -268,7 +280,7 @@ class View3D extends Component {
_bindPubSubEvents = () => {
this.props.subscribe(eventTopics.base3d_view, (topic, data) => {
console.log('subscribe base3d_view')
console.log('subscribe base3d_view' + data);
if (isControllerEvent(topic)) {
executeView3dCMD(this, topic, data);
} else if (isManualOperate(topic)) {
......@@ -467,7 +479,7 @@ class View3D extends Component {
});
};
onGraphCreated = ({ cameraFactory, sceneFactory, outlineFactory, r3d, stagePilot}) => {
onGraphCreated = ({ cameraFactory, sceneFactory, outlineFactory, r3d, stagePilot }) => {
this.cameraFactory = cameraFactory;
this.sceneFactory = sceneFactory;
this.outlineFactory = outlineFactory;
......@@ -492,7 +504,8 @@ class View3D extends Component {
onAllDone = objGroup => {
this.sceneFactory.level.change(objGroup);
this.stagePilot.rendererFactory.setupUModelSahdow();//接受阴影
// 接受阴影
this.stagePilot.rendererFactory.setupUModelSahdow();
this.setState({
startAsyncLoad: true
});
......@@ -508,15 +521,15 @@ class View3D extends Component {
onComplete = obj => {
const me = this;
cacheObjsSave(me,obj,LENS_LEVEL);//缓存对象及对应关系
if (!obj.isForceParent) {
obj.on('click', evt => {
if (this.state.isEditMode == false) {
console.log('obj click:', evt);
const me = this;
if (this.state.isEditMode === false) {
// this.focusPosition(evt.pickedPosition);
me.outlineFactory.toggleOutline(evt.object);
me.focusObject(evt.object);
flyToSubView(me,obj,LENS_LEVEL);
}
});
}
// 处理跳跃
......@@ -541,14 +554,7 @@ class View3D extends Component {
// 飞行到具体的 obj 之后,执行进入层级操作
onComplete() {
console.log('fly done!', object);
// 进入子层级
if (object.foreignKey) {
me.lensJumpFactory.jumpInByForeignKey(object.foreignKey, excludeObj => {
// 处理非该层级的物体 (fadeOut)
me.lensJumpFactory.fadeOut(excludeObj);
});
me.lensLevel = LENS_LEVEL.SUB;
}
me.lensLevel = LENS_LEVEL.SUB;
}
});
} else if (me.state.alarmStarted) {
......@@ -1582,6 +1588,19 @@ class View3D extends Component {
return object;
}
multLoadWorkerObjContent =(asyncModels)=>{
const sliceArry = chunk(asyncModels, 5);
return sliceArry.map(objs=>{
return <WorkerObjContent
onComplete={this.onComplete}
objs={objs}
onWorkerMessage={this.onWorkerLoading}
enableLoading
afterInit={this.onAfterWorkerInit}
/>;
});
}
addMarker=({ extData, position })=>{
const me = this;
const { markers } = me.state;
......@@ -1722,7 +1741,7 @@ class View3D extends Component {
positionCtlProps={positionCtlProps}
onCreated={this.onGraphCreated}
>
{startAsyncLoad && <WorkerObjContent objs={asyncModels} onWorkerMessage={this.onWorkerLoading} enableLoading afterInit={this.onAfterWorkerInit} />}
{startAsyncLoad && this.multLoadWorkerObjContent(asyncModels)}
{isEditMode && pageType === 'region' ? '' :
<PointsPool markers={markers} isEditMode={isEditMode} selectPoints={selectPoints} updateMarker={this.updateMarker} planStarted={alarmStarted} stagePilot={this.stagePilot} positionCtl={this.positionCtl} addMarker={this.addMarker} ref={node => this.pointsPool = node} />}
{fireTruckRoute && <FatLine {...lineData.fatLineConf} linePath={JSON.parse(fireTruckRoute)} visible={showFireTruckRoute} />}
......
......@@ -311,8 +311,8 @@ export const desigerConf = {
fov: 45,
near: 1,
far: 5000,
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386],
position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [-52.608562486768115, -6.882567219297089, 1.984922473879572],
// 是否启用拾取器
enablePicker: true,
builtInOrbit: {
......@@ -357,8 +357,8 @@ export const curveConf = {
export const desigerHelperConfig = {
cameraEffect: {
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386]
position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [-52.608562486768115, -6.882567219297089, 1.984922473879572]
},
objAnchor: {
position: [0, 5, 0]
......
......@@ -344,4 +344,55 @@ export const objRunning = (markerObj, routePath, delayTime) => {
});
};
/**
* 模型对象缓存
* @param {object} instance
* @param {object} obj
*/
export const cacheObjsSave = (instance,obj,LENS_LEVEL)=>{
const { level, parentKey, key } = obj.userData || {};
if (level && key){
instance._cacheObj[key] = obj;
switch (level) {
case LENS_LEVEL.ROOT:// 父节点
if (!instance.processorLevel[key]){
instance.processorLevel[key] = [];
}
break;
case LENS_LEVEL.SUB:// 子节点
if (!instance.processorLevel[parentKey]){
instance.processorLevel[parentKey] = [];
}
instance.processorLevel[parentKey].push(key);// 在对应关系中,添加其子节点
break;
default:
break;
}
}
};
/**
* 进入选择物体内部
* @param {object} instance
* @param {object} obj
*/
export const flyToSubView = (instance,obj,LENS_LEVEL) =>{
if (obj.userData && obj.userData.level && obj.userData.level === 'root'){
Object.keys(instance.processorLevel).forEach(key => {
// 隐藏所有一级
instance._cacheObj[key].visible = false;
// 隐藏非目标二级
if (key !== obj.userData.key){
instance.processorLevel[key].forEach(sec => {
instance._cacheObj[sec].visible = false;
});
}
});
// 镜头切换
obj.userData.fitView && instance.cameraFactory.fitView(obj.userData.fitView);//视角调整为最近视角
instance.lensLevel = LENS_LEVEL.SUB;
} else {
instance.focusObject(obj);
}
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment