Commit 18b80c28 authored by 单奇雲's avatar 单奇雲

merge

parents 66fddfdb b6c2e1bb
{
"dataList": [
{ "id": 1, "thumb": "/a3dres/basicScene/station/thumb.png", "modelURI": "/a3dres/basicScene/station", "name": "station", "descr": "变电站" },
{ "id": 2, "thumb": "/a3dres/basicScene/cola/thumb.png", "modelURI": "/a3dres/basicScene/cola", "name": "cola", "descr": "可乐站" },
{ "id": 3, "thumb": "/a3dres/basicScene/beijing/thumb.png", "modelURI": "/a3dres/basicScene/beijing", "name": "beijing", "descr": "北京换流站" },
{ "id": 4, "thumb": "/a3dres/basicScene/beijing2/thumb.png", "modelURI": "/a3dres/basicScene/beijing2", "name": "beijing2", "descr": "北京换流站" },
{ "id": 5, "thumb": "/a3dres/basicScene/yinan/thumb.png", "modelURI": "/a3dres/basicScene/yinan", "name": "yinan", "descr": "沂南换流站" },
{ "id": 6, "thumb": "/a3dres/basicScene/ccpc/thumb.png", "modelURI": "/a3dres/basicScene/ccpc", "name": "ccpc", "descr": "北大街银行" },
{ "id": 7, "thumb": "/a3dres/basicScene/ccpc-xian/thumb.png", "modelURI": "/a3dres/basicScene/ccpc-xian", "name": "ccpc", "descr": "西安银行" },
{ "id": 8, "thumb": "/a3dres/basicScene/shm/thumb.png", "modelURI": "/a3dres/basicScene/shm", "name": "shm", "descr": "上海庙" }
],
"result": "SUCCESS"
}
This diff is collapsed.
# 目录说明
`index.json` 存放的是所有的元素控件配置信息
`baseScene.json` 存放的是基础场景配置信息
...@@ -60,6 +60,7 @@ const AsyncDifferentiate = props => <AsyncLoader load={import('./../view/bizview ...@@ -60,6 +60,7 @@ const AsyncDifferentiate = props => <AsyncLoader load={import('./../view/bizview
const AsyncAlarmVideoMonitor = props => <AsyncLoader load={import('./../view/bizview/alarmVideoMonitor')} componentProps={props} />; const AsyncAlarmVideoMonitor = props => <AsyncLoader load={import('./../view/bizview/alarmVideoMonitor')} componentProps={props} />;
const AsyncAlarmTestView = props => <AsyncLoader load={import('./../view/bizview/alarm')} componentProps={props} />; const AsyncAlarmTestView = props => <AsyncLoader load={import('./../view/bizview/alarm')} componentProps={props} />;
const AsyncCusVizLib = props => <AsyncLoader load={import('./../view/planMgmt/cusVizLib')} componentProps={props} />; const AsyncCusVizLib = props => <AsyncLoader load={import('./../view/planMgmt/cusVizLib')} componentProps={props} />;
const AsyncGraph3DModel = props => <AsyncLoader load={import('amos-iot-3dgraph/lib/view/modelMgmt')} componentProps={props} />;
const Routes = { const Routes = {
...@@ -116,7 +117,8 @@ const Routes = { ...@@ -116,7 +117,8 @@ const Routes = {
differentiate: AsyncDifferentiate, differentiate: AsyncDifferentiate,
alarmVideoMonitor: AsyncAlarmVideoMonitor, alarmVideoMonitor: AsyncAlarmVideoMonitor,
alarmTest: AsyncAlarmTestView, alarmTest: AsyncAlarmTestView,
vizlib: AsyncCusVizLib vizlib: AsyncCusVizLib,
modelManage: AsyncGraph3DModel
}; };
const pageCompontent = key => { const pageCompontent = key => {
......
...@@ -4,7 +4,6 @@ import notFound from 'amos-security/lib/routes/notfound'; ...@@ -4,7 +4,6 @@ import notFound from 'amos-security/lib/routes/notfound';
import redirect from 'amos-security/lib/routes/notfound/redirect'; import redirect from 'amos-security/lib/routes/notfound/redirect';
import signUp, { signupRouters } from 'amos-security/lib/routes/signUp'; import signUp, { signupRouters } from 'amos-security/lib/routes/signUp';
import routerFilter, { checkLogin } from 'amos-security/lib/routes/validateRouter'; import routerFilter, { checkLogin } from 'amos-security/lib/routes/validateRouter';
import PublishView from './../view/planMgmt/view';
import AutoLogin from './../view/autoLogin/AutoLogin'; import AutoLogin from './../view/autoLogin/AutoLogin';
import calcRoutes from './calcRoutes'; import calcRoutes from './calcRoutes';
import addCustomRoutes, { customRoutes, planChildrenRoutes } from './customRoutes'; import addCustomRoutes, { customRoutes, planChildrenRoutes } from './customRoutes';
...@@ -17,10 +16,10 @@ import pageCompontent, { ...@@ -17,10 +16,10 @@ import pageCompontent, {
RegionList RegionList
} from './view'; } from './view';
import Iot3DGraphBiz from './../view/planMgmt/iot3DGraph'; import Iot3DGraphBiz from './../view/planMgmt/iot3DGraph';
import ShareTextPlan from './../view/planMgmt/view/ShareTextPlan'; import ShareTextPlan from './../view/planMgmt/view/ShareTextPlan';
import PubView from './../view/planMgmt/view/pubview';
import TextPlan from './../view/planMgmt/view/TextPlan'; import TextPlan from './../view/planMgmt/view/TextPlan';
import PublishApp from 'amos-iot-3dgraph/lib/view/pubview';
import ModelEdit from 'amos-iot-3dgraph/lib/view/modelMgmt/edit/ModelEdit';
const groups = [ const groups = [
'main', 'biz', 'console', 'ruleConfig' 'main', 'biz', 'console', 'ruleConfig'
...@@ -32,15 +31,9 @@ const injectRoutes = menus => { ...@@ -32,15 +31,9 @@ const injectRoutes = menus => {
const bizChilds = addCustomRoutes(biz); const bizChilds = addCustomRoutes(biz);
const consoleChilds = addCustomRoutes(consoleRoutes); const consoleChilds = addCustomRoutes(consoleRoutes);
const routes = [ const routes = [
{ { path: 'viz3d/:subjectId', component: Iot3DGraphBiz },
path: 'viz3d/:subjectId', { path: 'viz3dpub', component: PublishApp },
component: Iot3DGraphBiz { path: 'models/:modelId', component: ModelEdit },
},
// {
// path: 'viz3dpub',
// component: PublishView,
// childRoutes: [...customRoutesPubView]
// },
{ path: 'login', component: Login }, { path: 'login', component: Login },
{ path: 'autologin', component: AutoLogin }, { path: 'autologin', component: AutoLogin },
{ path: 'region', component: RegionList }, // 区域选择 { path: 'region', component: RegionList }, // 区域选择
......
...@@ -56,6 +56,7 @@ import RealTimeMonitor from './../view/morphic'; ...@@ -56,6 +56,7 @@ import RealTimeMonitor from './../view/morphic';
import PublishView from './../view/planMgmt/view'; import PublishView from './../view/planMgmt/view';
import ModelManage from './../view/planMgmt/modelManage'; import ModelManage from './../view/planMgmt/modelManage';
import LeaderStruct from './../view/planMgmt/view/leaderStruct'; import LeaderStruct from './../view/planMgmt/view/leaderStruct';
import Graph3DModel from 'amos-iot-3dgraph/lib/view/modelMgmt';
const Routes = { const Routes = {
// 添加 rules 路由 // 添加 rules 路由
......
...@@ -8,3 +8,7 @@ export const getOnlineWeather = (cityKey) => { ...@@ -8,3 +8,7 @@ export const getOnlineWeather = (cityKey) => {
const url = `http://wthrcdn.etouch.cn/weather_mini?city=${cityKey}`; const url = `http://wthrcdn.etouch.cn/weather_mini?city=${cityKey}`;
return singleFetch(url); return singleFetch(url);
}; };
export const conmmonGetService =(url) =>{
return singleFetch(url);
}
...@@ -161,7 +161,7 @@ class RiskSourceModel extends Component { ...@@ -161,7 +161,7 @@ class RiskSourceModel extends Component {
<FormItem label={<span>参考编号</span>} field="code" {...formItemLayout}> <FormItem label={<span>参考编号</span>} field="code" {...formItemLayout}>
<Input disabled={disabled} className="risk-model-input" required value={form.code} onChange={e => this.onSelectChange('code', e.target.value)} /> <Input disabled={disabled} className="risk-model-input" required value={form.code} onChange={e => this.onSelectChange('code', e.target.value)} />
</FormItem> </FormItem>
{ (form.riskLevelId !== 0) && { (form.riskLevelId !== 0 && isEdit) &&
<FormItem label={<span>风险等级</span>} field="riskLevelId" {...formItemLayout}> <FormItem label={<span>风险等级</span>} field="riskLevelId" {...formItemLayout}>
<span style={{ lineHeight: '32px' }}>{this.getriskLevel(riskLevelData, form.riskLevelId)}</span> <span style={{ lineHeight: '32px' }}>{this.getriskLevel(riskLevelData, form.riskLevelId)}</span>
</FormItem> </FormItem>
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { deepCopy } from 'amos-tool'; import { deepCopy } from 'amos-tool';
import A3DDesigner, { r3d, Connect, DESIGNER_CONSTS } from 'amos-3d/lib/designer'; import A3DDesigner, { r3d, Connect, DESIGNER_CONSTS,EVENT_CONSTS } from 'amos-3d/lib/designer';
import { A3DUtil } from 'amos-3d/lib/threeTools'; import { A3DUtil } from 'amos-3d/lib/threeTools';
import WorkerObjContent from 'amos-3d/lib/worker/WorkerObjContent'; import WorkerObjContent from 'amos-3d/lib/worker/WorkerObjContent';
import { BaseObjHelper } from 'base-r3d/lib/factory'; import { BaseObjHelper } from 'base-r3d/lib/factory';
import { ELEMENT_TYPE } from 'amos-iot-3dgraph/lib/view/pubview/../design/conf'; import { ELEMENT_TYPE } from 'amos-iot-3dgraph/lib/view/pubview/../design/conf';
import { imageStyles } from 'amos-iot-3dgraph/lib/view/settingpanel/scenery/conf';
import imgStatic from 'amos-iot-3dgraph/lib/consts/imgStatic';
import { Button, Modal, Row, Col } from 'amos-framework'; import { Button, Modal, Row, Col } from 'amos-framework';
import { PubSub } from 'ray-eventpool'; import { PubSub } from 'ray-eventpool';
import { eventTopics } from './../../../3dview/consts'; import { eventTopics } from './../../../3dview/consts';
import { conmmonGetService } from './../../../../services/commonServices';
import PlayTaskTabs from './taskTabs'; import PlayTaskTabs from './taskTabs';
import Play from './play'; import Play from './play';
const { resizeConnect } = Connect; const { resizeConnect } = Connect;
const { Tools } = A3DUtil; const { Tools } = A3DUtil;
const { ANIMATION_CONSTS } = DESIGNER_CONSTS; const { ANIMATION_CONSTS } = DESIGNER_CONSTS;
const { EVENT_TYPE_CORE } = EVENT_CONSTS;
/** /**
* 3d 执行器 * 3d 执行器
...@@ -35,9 +39,9 @@ class StageActuator extends Component { ...@@ -35,9 +39,9 @@ class StageActuator extends Component {
modelModal: false,//详情弹框 modelModal: false,//详情弹框
modalContent: '', modalContent: '',
playing: false, //播放状态 playing: false, //播放状态
detailData: '', detailData: ''
objs: [],//特效objs
}; };
this.objs = [];//特效objs
} }
componentDidMount() { componentDidMount() {
...@@ -241,122 +245,92 @@ class StageActuator extends Component { ...@@ -241,122 +245,92 @@ class StageActuator extends Component {
this.cameraFactory = cameraFactory; this.cameraFactory = cameraFactory;
this.rendererFactory = stagePilot.rendererFactory; this.rendererFactory = stagePilot.rendererFactory;
this.r3d = r3d; this.r3d = r3d;
// 设置 UI
//单击 // this.objAnchorHelper = new ObjAnchorHelper({
this.r3d.on('click', (evt) => { // r3d,
console.log('click'); // cameraFactory,
if (evt.object && evt.object.type === 'Mesh') { // sceneFactory
const realObj = evt.object.parent; // });
const userData = realObj.userData; // 鼠标移入
this.r3d.on(EVENT_TYPE_CORE.MouseEnter, evt => {
if(userData && userData.dataConfig && userData.dataConfig.dataDetailUrl){ console.log(evt);
fetch(userData.dataConfig.dataDetailUrl) // if (evt.object && evt.object._boh){
.then(response => response.json()) // evt.object._boh.style.color = 0xff00ff;
.then(data => this.setState({ modelModal: true , detailData: data.dataList})); // }
}
if(userData.bubbleConfig && userData.bubbleConfig.displayMode == 'click'){
//该模型之前顶牌展示状态
userData.clickShow = userData.clickShow == undefined ? true : !userData.clickShow;
if(userData.clickShow){//判断之前是否显示
this.state.objs.find(e => e.uuid == realObj.uuid).baseObjHelper.title = userData.displayName || null;
}else{
this.state.objs.find(e => e.uuid == realObj.uuid).baseObjHelper.title = null;
}
}
}
}); });
// 鼠标移出
// 双击事件 this.r3d.on(EVENT_TYPE_CORE.MouseLeave, evt => {
this.r3d.on('dblclick', (evt) => { console.log(evt);
// console.log('dblclick'); // if (evt.object && evt.object._boh){
}); // evt.object._boh.style.color = null;
// }
// 鼠标移入事件
this.r3d.on('mouseover', (evt) => {
if (evt.object && evt.object.type === 'Mesh') {
const realObj = evt.object.parent;
const userData = realObj.userData;
//清除其他
this.state.objs.forEach(o => {
if(o.userData.bubbleConfig && o.userData.bubbleConfig.displayMode == 'hover'){
o.baseObjHelper.title = null;
}
});
if(userData.bubbleConfig && userData.bubbleConfig.displayMode == 'hover'){
this.state.objs.find(e => e.uuid == realObj.uuid).baseObjHelper.title = userData.displayName || null;
}
}
}); });
//单击
// 鼠标移出事件 this.r3d.on(EVENT_TYPE_CORE.Click, (evt) => {
this.r3d.on('mouseout', (evt) => { if (evt.button === 0 && evt.object && evt.object.type === 'Mesh') {
// console.log('mouseout'); const userData = evt.object.parent.userData;
if (evt.object && evt.object.type === 'Mesh') { if(userData && userData.dataConfig && userData.dataConfig.dataDetailUrl){
const realObj = evt.object.parent; conmmonGetService(userData.dataConfig.dataDetailUrl).then(
const userData = realObj.userData; data => {
if(userData.bubbleConfig && userData.bubbleConfig.displayMode == 'hover'){ this.setState({ modelModal: true , detailData: data.dataList});
this.state.objs.find(e => e.uuid == realObj.uuid).baseObjHelper.title = null; },
error =>{
console.error(userData.dataConfig.dataDetailUrl + '请求元素详情失败');
}
);
} }
} }
}); });
}; };
afterRender = () => {
}
handleModelParserData = (parser, fmtData) => { handleModelParserData = (parser, fmtData) => {
// 将 eid 绑定到 parser 的 node 上 // 将 fmtData 绑定到 parser 的 node.userData 上
// Object.assign(parser.obj.userData, { eid: fmtData.eid, displayName: fmtData.displayName }) // Object.assign(parser.obj.userData, fmtData)
// or parser.bindUserData(fmtData);
parser.bindUserData(deepCopy(fmtData)); const { sceneryConfig: { visible, position, imgUrlKey } = {},displayName } = fmtData;
const image = imageStyles.filter(image => image.key === imgUrlKey);
//为模型添加顶牌属性 const imageUrl = image.length > 0 ? image[0].imgUrl : imgStatic.defaultScenery ;
let obj = parser.obj; if (visible) {
const boh = new BaseObjHelper({ obj }); parser.objHelper.titleConfig = {
obj.baseObjHelper = boh; planeOptions: {
obj.baseObjHelper.titleConfig = { width: 256 * 0.1,
// 顶牌平面参数 height: 128 * 0.1,
planeOptions: { // 顶牌相对于 parser 模型的位置
...obj.userData.displayName, position,
width: 256 * 0.1, // 是否双面
height: 128 * 0.1, doubleSide: true
position:{ x: 0, y: 30, z: 0 }, },
}, canvasOptions: {
canvasOptions: { fillStyle: 'rgb(51, 51, 51)',
fillStyle: 'rgb(51, 51, 51)', font: '32px sans-serif',
font: '32px sans-serif', textBaseline: 'middle'
textBaseline: 'middle', },
}, // 设置顶牌大小及图片路径
imgWidth: 256, imgWidth: 256,
imgHeight: 128, imgHeight: 128,
// 设置顶牌 图片路径 image: imageUrl
image: `/src/assets/planMgmt/center.png` };
}; parser.objHelper.title = displayName;
if(obj.userData.displayName && obj.userData.bubbleConfig && obj.userData.bubbleConfig.displayMode == 'show'){
obj.baseObjHelper.title = obj.userData.displayName;
}else{
obj.baseObjHelper.title = null;
} }
this.state.objs.push(obj); this.objs.push(parser.obj);
} }
/** 处理所有的模型解析完毕之后 */ /** 处理所有的模型解析完毕之后 */
handleModelParserDone = (modelParser) => { handleModelParserDone = (modelParser) => {
const { content } = this.props; const { content } = this.props;
// const modelExistAttach = content.filter(userData => userData.attachments && userData.attachments.length > 0 ); const modelExistAttach = content.filter(userData => userData.attachments && userData.attachments.length > 0 );
// 改变模型关联关系 // 改变模型关联关系
// modelExistAttach.forEach(userData =>{ modelExistAttach.forEach(userData =>{
// const parentObj = modelParser.get(userData.eid); const parentObj = modelParser.get(userData.eid);
// userData.attachments.forEach(eid=>{ userData.attachments.forEach(eid=>{
// const attachModel = modelParser.get(eid); const attachModel = modelParser.get(eid);
// attachModel && parentObj.attach(attachModel); if (attachModel){
// }); // attachModel.node.position.set(0,10,0);
// }); parentObj.attach(attachModel);
} }
});
});
}
//model start //model start
getContext = () => { getContext = () => {
...@@ -432,6 +406,7 @@ class StageActuator extends Component { ...@@ -432,6 +406,7 @@ class StageActuator extends Component {
baseObjs={baseObjs} baseObjs={baseObjs}
ref={node => this.a3dRef = node} ref={node => this.a3dRef = node}
disabledEdit disabledEdit
enableObjOutline
enablePen enablePen
penProps={penProps} penProps={penProps}
enableParticles enableParticles
......
...@@ -21,8 +21,8 @@ class taskTabs extends Component { ...@@ -21,8 +21,8 @@ class taskTabs extends Component {
this.state = { this.state = {
taskTabsShow: true, taskTabsShow: true,
tabs:[ tabs:[
{key:1, type:'person', icon:'person', models:[]}, {key:1, type:'human', icon:'person', models:[]},
{key:2, type:'car', icon:'car', models:[]} {key:2, type:'vehicle', icon:'car', models:[]}
], ],
activeKey: '', activeKey: '',
}; };
...@@ -31,8 +31,8 @@ class taskTabs extends Component { ...@@ -31,8 +31,8 @@ class taskTabs extends Component {
componentDidMount(){ componentDidMount(){
let { tabs } = this.state; let { tabs } = this.state;
let models = this.props.content || []; let models = this.props.content || [];
tabs[0].models = models.filter(e => e.key.indexOf('person') != -1); tabs[0].models = models.filter(e => e.stuffType === 'human');
tabs[1].models = models.filter(e => e.key.indexOf('car') != -1); tabs[1].models = models.filter(e => e.stuffType === 'vehicle');
this.setState({ tabs }); this.setState({ tabs });
this.tabsPubsub = PubSub.subscribe(eventTopics.plan_task_list,function(topic,message){ this.tabsPubsub = PubSub.subscribe(eventTopics.plan_task_list,function(topic,message){
...@@ -49,8 +49,8 @@ class taskTabs extends Component { ...@@ -49,8 +49,8 @@ class taskTabs extends Component {
if (!fastDeepEqual(prevProps.content, this.props.content)){ if (!fastDeepEqual(prevProps.content, this.props.content)){
let { tabs } = this.state; let { tabs } = this.state;
let models = this.props.content|| []; let models = this.props.content|| [];
tabs[0].models = models.filter(e => e.key.indexOf('person') != -1); tabs[0].models = models.filter(e => e.stuffType === 'human');
tabs[1].models = models.filter(e => e.key.indexOf('car') != -1); tabs[1].models = models.filter(e => e.stuffType === 'vehicle');
this.setState({ tabs }); this.setState({ tabs });
} }
} }
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
{ "objName": "ground_01.obj", "mtlName": "ground_01.mtl", "modelLevel": "Park" }, { "objName": "ground_01.obj", "mtlName": "ground_01.mtl", "modelLevel": "Park" },
{ "objName": "ground_02.obj", "mtlName": "ground_02.mtl", "modelLevel": "Park"}, { "objName": "ground_02.obj", "mtlName": "ground_02.mtl", "modelLevel": "Park"},
{ "objName": "guandao_02.obj", "mtlName": "guandao_02.mtl", "modelLevel": "Park" }, { "objName": "guandao_02.obj", "mtlName": "guandao_02.mtl", "modelLevel": "Park" },
{ "objName": "gis.obj", "mtlName": "gis.mtl", "modelLevel": "Building" }, { "objName": "gis.obj", "mtlName": "gis.mtl", "modelLevel": "Building" },
{ "objName": "gis_guandao_01.obj", "mtlName": "gis_guandao_01.mtl", "modelLevel": "Building" }, { "objName": "gis_guandao_01.obj", "mtlName": "gis_guandao_01.mtl", "modelLevel": "Building" },
{ "objName": "gis_guandao_02.obj", "mtlName": "gis_guandao_02.mtl", "modelLevel": "Building" }, { "objName": "gis_guandao_02.obj", "mtlName": "gis_guandao_02.mtl", "modelLevel": "Building" },
...@@ -29,13 +28,9 @@ ...@@ -29,13 +28,9 @@
{ "objName": "gis_guandao_14.obj", "mtlName": "gis_guandao_14.mtl", "modelLevel": "Building" }, { "objName": "gis_guandao_14.obj", "mtlName": "gis_guandao_14.mtl", "modelLevel": "Building" },
{ "objName": "gis_guandao_15.obj", "mtlName": "gis_guandao_15.mtl", "modelLevel": "Building" }, { "objName": "gis_guandao_15.obj", "mtlName": "gis_guandao_15.mtl", "modelLevel": "Building" },
{ "objName": "gis_guandao_16.obj", "mtlName": "gis_guandao_16.mtl", "modelLevel": "Building" }, { "objName": "gis_guandao_16.obj", "mtlName": "gis_guandao_16.mtl", "modelLevel": "Building" },
{ "objName": "szn_00.obj", "mtlName": "szn_00.mtl", "modelLevel": "Building" }, { "objName": "szn_00.obj", "mtlName": "szn_00.mtl", "modelLevel": "Building" },
{ "objName": "szn_01.obj", "mtlName": "szn_01.mtl", "modelLevel": "Building" }, { "objName": "szn_01.obj", "mtlName": "szn_01.mtl", "modelLevel": "Building" },
{ "objName": "szn_02.obj", "mtlName": "szn_02.mtl", "modelLevel": "Building" }, { "objName": "szn_02.obj", "mtlName": "szn_02.mtl", "modelLevel": "Building" },
{ "objName": "szn_03.obj", "mtlName": "szn_03.mtl", "modelLevel": "Building" },
{ "objName": "szn_04.obj", "mtlName": "szn_04.mtl", "modelLevel": "Building" }, { "objName": "szn_04.obj", "mtlName": "szn_04.mtl", "modelLevel": "Building" },
{ "objName": "szn_05.obj", "mtlName": "szn_05.mtl", "modelLevel": "Building" }, { "objName": "szn_05.obj", "mtlName": "szn_05.mtl", "modelLevel": "Building" },
{ "objName": "szn_06.obj", "mtlName": "szn_06.mtl", "modelLevel": "Building" }, { "objName": "szn_06.obj", "mtlName": "szn_06.mtl", "modelLevel": "Building" },
...@@ -49,24 +44,6 @@ ...@@ -49,24 +44,6 @@
{ "objName": "szn_22.obj", "mtlName": "szn_22.mtl", "modelLevel": "Building" }, { "objName": "szn_22.obj", "mtlName": "szn_22.mtl", "modelLevel": "Building" },
{ "objName": "szn_23.obj", "mtlName": "szn_23.mtl", "modelLevel": "Building" }, { "objName": "szn_23.obj", "mtlName": "szn_23.mtl", "modelLevel": "Building" },
{ "objName": "szn_24.obj", "mtlName": "szn_24.mtl", "modelLevel": "Building" }, { "objName": "szn_24.obj", "mtlName": "szn_24.mtl", "modelLevel": "Building" },
{ "objName": "valve-hall_01.obj", "mtlName": "valve-hall_01.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_01" }, { "objName": "valve-hall_01.obj", "mtlName": "valve-hall_01.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_01" },
{ "objName": "valve-hall_02.obj", "mtlName": "valve-hall_02.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_02" }, { "objName": "valve-hall_02.obj", "mtlName": "valve-hall_02.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_02" },
{ "objName": "valve-hall_03.obj", "mtlName": "valve-hall_03.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_03" } { "objName": "valve-hall_03.obj", "mtlName": "valve-hall_03.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_03" }
...@@ -114,15 +91,10 @@ ...@@ -114,15 +91,10 @@
]} ]}
], ],
"asyncModels": [ "asyncModels": [
{ "objName": "hlb_01.obj", "mtlName": "hlb_01.mtl", "modelLevel": "Building" }, { "objName": "hlb_01.obj", "mtlName": "hlb_01.mtl", "modelLevel": "Building" },
{ "objName": "hlb_02.obj", "mtlName": "hlb_02.mtl", "modelLevel": "Building" }, { "objName": "hlb_02.obj", "mtlName": "hlb_02.mtl", "modelLevel": "Building" },
{ "objName": "hlb_03.obj", "mtlName": "hlb_03.mtl", "modelLevel": "Building" }, { "objName": "hlb_03.obj", "mtlName": "hlb_03.mtl", "modelLevel": "Building" },
{ "objName": "hlb_04.obj", "mtlName": "hlb_04.mtl", "modelLevel": "Building" }, { "objName": "hlb_04.obj", "mtlName": "hlb_04.mtl", "modelLevel": "Building" },
{ "objName": "fkl_01.obj", "mtlName": "fkl_01.mtl", "modelLevel": "Building" }, { "objName": "fkl_01.obj", "mtlName": "fkl_01.mtl", "modelLevel": "Building" },
{ "objName": "fkl_02.obj", "mtlName": "fkl_02.mtl", "modelLevel": "Building" }, { "objName": "fkl_02.obj", "mtlName": "fkl_02.mtl", "modelLevel": "Building" },
{ "objName": "fklt_01.obj", "mtlName": "fklt_01.mtl", "modelLevel": "Building" }, { "objName": "fklt_01.obj", "mtlName": "fklt_01.mtl", "modelLevel": "Building" },
......
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