修改文字显示,行车路径,行车计算
This commit is contained in:
parent
6fa90f5c79
commit
f847629b92
@ -352,7 +352,7 @@ export function SectionList() {
|
|||||||
}else{
|
}else{
|
||||||
scope.standtrack.push(testmesh1);
|
scope.standtrack.push(testmesh1);
|
||||||
var box = new THREE.BoxHelper( testmesh1, 0xff0000 );
|
var box = new THREE.BoxHelper( testmesh1, 0xff0000 );
|
||||||
scope.sectiongroup.add( box );
|
// scope.sectiongroup.add( box );
|
||||||
}
|
}
|
||||||
scope.sections.modellist.push(testmesh1);
|
scope.sections.modellist.push(testmesh1);
|
||||||
}
|
}
|
||||||
|
@ -161,7 +161,8 @@ export function JLmap3dEdit(dom, data, mapid) {
|
|||||||
let exporter = new THREE.OBJExporter();
|
let exporter = new THREE.OBJExporter();
|
||||||
console.log(scope.mapdata);
|
console.log(scope.mapdata);
|
||||||
// let exportmodels = scope.mapdata.linklist.linksgroup;
|
// let exportmodels = scope.mapdata.linklist.linksgroup;
|
||||||
let exportmodels = scope.mapdata.sectionlist.switchgroup;
|
// let exportmodels = scope.mapdata.sectionlist.switchgroup;
|
||||||
|
let exportmodels = scope.mapdata.stationstandlist.group;
|
||||||
let result = exporter.parse( exportmodels );
|
let result = exporter.parse( exportmodels );
|
||||||
|
|
||||||
console.log(result);
|
console.log(result);
|
||||||
|
@ -6,11 +6,6 @@ import {OBJLoader} from '@/jlmap3d/main/loaders/OBJLoader.js';
|
|||||||
import {MTLLoader} from '@/jlmap3d/main/loaders/MTLLoader.js';
|
import {MTLLoader} from '@/jlmap3d/main/loaders/MTLLoader.js';
|
||||||
import { FBXLoader } from '@/jlmap3d/main/loaders/FBXLoader.js';
|
import { FBXLoader } from '@/jlmap3d/main/loaders/FBXLoader.js';
|
||||||
|
|
||||||
// controls
|
|
||||||
import {OrbitControls} from '@/jlmap3d/main/control/OrbitControls.js';
|
|
||||||
import { DragControls } from '@/jlmap3d/main/control/DragControls.js';
|
|
||||||
// component
|
|
||||||
|
|
||||||
// data
|
// data
|
||||||
import { Jl3ddata } from '@/jlmap3d/main/model/jl3ddata';
|
import { Jl3ddata } from '@/jlmap3d/main/model/jl3ddata';
|
||||||
|
|
||||||
@ -20,11 +15,14 @@ import { SetRender } from '@/jlmap3d/config/SetRender';
|
|||||||
import { SetScene } from '@/jlmap3d/config/SetScene';
|
import { SetScene } from '@/jlmap3d/config/SetScene';
|
||||||
import { SetLights } from '@/jlmap3d/config/SetLights';
|
import { SetLights } from '@/jlmap3d/config/SetLights';
|
||||||
|
|
||||||
|
// controls
|
||||||
|
import {OrbitControls} from '@/jlmap3d/main/control/OrbitControls.js';
|
||||||
|
import { DragControls } from '@/jlmap3d/main/control/DragControls.js';
|
||||||
|
|
||||||
// 加载器
|
// 加载器
|
||||||
import { ModelLoad } from '@/jlmap3d/main/loaders/simulationloader';
|
import { ModelLoad } from '@/jlmap3d/main/loaders/simulationloader';
|
||||||
// connect
|
// connect
|
||||||
import {Jl3dDriving} from '@/jlmap3d/jl3ddrive/moveupdate/DrivingConnect';
|
import {Jl3dDriving} from '@/jlmap3d/jl3ddrive/moveupdate/DrivingConnect';
|
||||||
|
|
||||||
import { getPublishMapVersion, getPublishMapDetail, getPublish3dMapDetail} from '@/api/jlmap3d/load3ddata';
|
import { getPublishMapVersion, getPublishMapDetail, getPublish3dMapDetail} from '@/api/jlmap3d/load3ddata';
|
||||||
|
|
||||||
// utils
|
// utils
|
||||||
@ -40,7 +38,7 @@ var clock = new THREE.Clock();
|
|||||||
|
|
||||||
export function JLmapDriving(dom, data, skinCode,storemod) {
|
export function JLmapDriving(dom, data, skinCode,storemod) {
|
||||||
|
|
||||||
const scope = this;
|
let scope = this;
|
||||||
|
|
||||||
//界面更新函数
|
//界面更新函数
|
||||||
let updatemmi = {};
|
let updatemmi = {};
|
||||||
@ -49,7 +47,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
this.animateswitch = false;
|
this.animateswitch = false;
|
||||||
this.cctvswitch = false;
|
this.cctvswitch = false;
|
||||||
// 初始化webgl渲染
|
// 初始化webgl渲染
|
||||||
const renderer = SetRender(dom);
|
let renderer = SetRender(dom);
|
||||||
renderer.domElement.style.position = 'absolute';
|
renderer.domElement.style.position = 'absolute';
|
||||||
renderer.domElement.style.top = '0';
|
renderer.domElement.style.top = '0';
|
||||||
|
|
||||||
@ -63,9 +61,9 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
// 定义相机
|
// 定义相机
|
||||||
//let camera = SetCamera(dom);
|
//let camera = SetCamera(dom);
|
||||||
// 定义场景(渲染容器)
|
// 定义场景(渲染容器)
|
||||||
const scene = SetScene();
|
let scene = SetScene();
|
||||||
|
|
||||||
const speed = 0;
|
let speed = 0;
|
||||||
|
|
||||||
let drivingcode = null;
|
let drivingcode = null;
|
||||||
|
|
||||||
@ -98,7 +96,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
// 地图模型数据
|
// 地图模型数据
|
||||||
let mapdata = new Jl3ddata();
|
let mapdata = new Jl3ddata();
|
||||||
|
|
||||||
let camera = new THREE.PerspectiveCamera(70, dom.clientWidth/dom.clientHeight, 1, 1100);
|
let camera = new THREE.PerspectiveCamera(70, dom.clientWidth/dom.clientHeight, 1, 11000);
|
||||||
camera.position.set( 0, 0, 0 );
|
camera.position.set( 0, 0, 0 );
|
||||||
camera.aspect = window.innerWidth / window.innerHeight;
|
camera.aspect = window.innerWidth / window.innerHeight;
|
||||||
camera.updateProjectionMatrix();
|
camera.updateProjectionMatrix();
|
||||||
@ -119,12 +117,13 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
sound.play();
|
sound.play();
|
||||||
});
|
});
|
||||||
|
|
||||||
const controls3 = new MouseControls(camera, 1.6);
|
let controls3 = new MouseControls(camera, 1.6);
|
||||||
controls3.enabled = true;
|
controls3.enabled = true;
|
||||||
|
// controls3.getObject().rotation.x = Math.PI/2;
|
||||||
scene.add(controls3.getObject());
|
scene.add(controls3.getObject());
|
||||||
|
|
||||||
let cameracctv = new THREE.PerspectiveCamera(70, dom.clientWidth/dom.clientHeight, 1, 120);
|
let cameracctv = new THREE.PerspectiveCamera(70, dom.clientWidth/dom.clientHeight, 1, 120);
|
||||||
cameracctv.position.set( 5, -3,27 );
|
cameracctv.position.set( 2, -1,27 );
|
||||||
|
|
||||||
cameracctv.rotation.y = Math.PI/5*3;
|
cameracctv.rotation.y = Math.PI/5*3;
|
||||||
camera.add(cameracctv);
|
camera.add(cameracctv);
|
||||||
@ -138,6 +137,32 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
if(mapdata.trainlisttest.group.children[0]){
|
if(mapdata.trainlisttest.group.children[0]){
|
||||||
updatemmi.updatedrivingcode(mapdata.trainlisttest.group.children[0].name);
|
updatemmi.updatedrivingcode(mapdata.trainlisttest.group.children[0].name);
|
||||||
scope.Subscribe.initdrivercode(mapdata.trainlisttest.group.children[0].name);
|
scope.Subscribe.initdrivercode(mapdata.trainlisttest.group.children[0].name);
|
||||||
|
for(let k in mapdata.rails.switchrail){
|
||||||
|
const ddd = storemod.getters['map/getDeviceByCode'](k);
|
||||||
|
let switchdata = mapdata.rails.switchrail[k];
|
||||||
|
mapdata.rails.switchrail[k].locateType = ddd.locateType;
|
||||||
|
|
||||||
|
if(ddd.locateType == "01"){
|
||||||
|
//1--向左 2--向右
|
||||||
|
//__\__ __/__
|
||||||
|
if(mapdata.rails.switchrail[k].directtype == "1"){
|
||||||
|
mapdata.rails.linkrail[switchdata.alink].lconnect = switchdata.blink;
|
||||||
|
mapdata.rails.linkrail[switchdata.blink].rconnect = switchdata.alink;
|
||||||
|
}else if(mapdata.rails.switchrail[k].directtype == "2"){
|
||||||
|
mapdata.rails.linkrail[switchdata.alink].rconnect = switchdata.blink;
|
||||||
|
mapdata.rails.linkrail[switchdata.blink].lconnect = switchdata.alink;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(ddd.locateType == "02"){
|
||||||
|
if(mapdata.rails.switchrail[k].directtype == "1"){
|
||||||
|
mapdata.rails.linkrail[switchdata.alink].lconnect = switchdata.clink;
|
||||||
|
mapdata.rails.linkrail[switchdata.clink].rconnect = switchdata.alink;
|
||||||
|
}else if(mapdata.rails.switchrail[k].directtype == "2"){
|
||||||
|
mapdata.rails.linkrail[switchdata.alink].rconnect = switchdata.clink;
|
||||||
|
mapdata.rails.linkrail[switchdata.clink].lconnect = switchdata.alink;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -187,7 +212,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
controls3.getObject().position.x = mapdata.trainlisttest.list[drivingcode].matrixWorld.elements[12]-27;
|
controls3.getObject().position.x = mapdata.trainlisttest.list[drivingcode].matrixWorld.elements[12]-27;
|
||||||
controls3.getObject().position.y=10;
|
controls3.getObject().position.y=10;
|
||||||
controls3.getObject().position.z = mapdata.trainlisttest.list[drivingcode].children[0].matrixWorld.elements[14];
|
controls3.getObject().position.z = mapdata.trainlisttest.list[drivingcode].children[0].matrixWorld.elements[14];
|
||||||
controls3.getObject().rotation.x = Math.PI/2;
|
|
||||||
console.log(controls3);
|
console.log(controls3);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -231,14 +256,11 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
updatemmi.updatedrivingcode = function(code) {
|
updatemmi.updatedrivingcode = function(code) {
|
||||||
drivingcode = code;
|
drivingcode = code;
|
||||||
mapdata.trainlisttest.list[drivingcode].children[0].add(controls3.getObject());
|
mapdata.trainlisttest.list[drivingcode].children[0].add(controls3.getObject());
|
||||||
mapdata.trainlisttest.list[drivingcode].children[0].add(scope.assetloader.modellist[4].mesh);
|
controls3.getObject().position.x = 10;
|
||||||
controls3.getObject().position.x = 20;
|
|
||||||
controls3.getObject().position.y = 0;
|
controls3.getObject().position.y = 0;
|
||||||
controls3.getObject().position.z = 5;
|
controls3.getObject().position.z = 2.5;
|
||||||
controls3.getObject().rotation.x = Math.PI/2;
|
controls3.getObject().rotation.x = Math.PI/2;
|
||||||
controls3.getObject().rotation.y = -Math.PI/2;
|
controls3.getObject().rotation.y = -Math.PI/2;
|
||||||
scope.assetloader.modellist[4].mesh.position.x = 34;
|
|
||||||
scope.assetloader.modellist[4].mesh.position.y = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.dispose = function() {
|
this.dispose = function() {
|
||||||
@ -379,9 +401,9 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
if (event.button == '0') {
|
if (event.button == '0') {
|
||||||
|
|
||||||
// 定义光线
|
// 定义光线
|
||||||
const raycaster = new THREE.Raycaster();
|
let raycaster = new THREE.Raycaster();
|
||||||
// 定义平面鼠标点击坐标
|
// 定义平面鼠标点击坐标
|
||||||
const mouse = new THREE.Vector2();
|
let mouse = new THREE.Vector2();
|
||||||
mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
|
mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
|
||||||
mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
|
mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
|
||||||
|
|
||||||
@ -393,7 +415,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
|
|
||||||
if (scope.raycasterswitch == 'stand') {
|
if (scope.raycasterswitch == 'stand') {
|
||||||
// 从站台对象组获取点击目标
|
// 从站台对象组获取点击目标
|
||||||
const intersects1 = raycaster.intersectObjects( mapdata.stationstandlist.textlist);
|
let intersects1 = raycaster.intersectObjects( mapdata.stationstandlist.textlist);
|
||||||
// 获取最近处点击到的模型对象
|
// 获取最近处点击到的模型对象
|
||||||
if (intersects1[0]) {
|
if (intersects1[0]) {
|
||||||
// 遍历对象组获取对象坐标更新相机数据
|
// 遍历对象组获取对象坐标更新相机数据
|
||||||
@ -411,7 +433,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (scope.raycasterswitch == 'train') {
|
if (scope.raycasterswitch == 'train') {
|
||||||
const intersects = raycaster.intersectObjects( mapdata.trainlisttest.textlist);
|
let intersects = raycaster.intersectObjects( mapdata.trainlisttest.textlist);
|
||||||
if (intersects[0]) {
|
if (intersects[0]) {
|
||||||
for (let j=0; j<mapdata.trainlisttest.list.length; j++) {
|
for (let j=0; j<mapdata.trainlisttest.list.length; j++) {
|
||||||
if (intersects[0].object.name == mapdata.trainlisttest.list[j].name) {
|
if (intersects[0].object.name == mapdata.trainlisttest.list[j].name) {
|
||||||
@ -425,7 +447,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
|
|
||||||
if (scope.raycasterswitch == 'section') {
|
if (scope.raycasterswitch == 'section') {
|
||||||
// console.log(mapdata.sectionlist.sections.modellist);
|
// console.log(mapdata.sectionlist.sections.modellist);
|
||||||
const intersects = raycaster.intersectObjects( mapdata.sectionlist.sections.modellist, true);
|
let intersects = raycaster.intersectObjects( mapdata.sectionlist.sections.modellist, true);
|
||||||
if (intersects[0]) {
|
if (intersects[0]) {
|
||||||
|
|
||||||
scope.helpbox = new THREE.BoxHelper( intersects[0].object, 0xff0000 );
|
scope.helpbox = new THREE.BoxHelper( intersects[0].object, 0xff0000 );
|
||||||
@ -435,7 +457,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
|
|
||||||
if (scope.raycasterswitch == 'signal') {
|
if (scope.raycasterswitch == 'signal') {
|
||||||
|
|
||||||
const intersects = raycaster.intersectObjects( mapdata.signallist.group.children, true);
|
let intersects = raycaster.intersectObjects( mapdata.signallist.group.children, true);
|
||||||
|
|
||||||
if (intersects[0]) {
|
if (intersects[0]) {
|
||||||
scope.helpbox = new THREE.BoxHelper( intersects[0].object, 0xff0000 );
|
scope.helpbox = new THREE.BoxHelper( intersects[0].object, 0xff0000 );
|
||||||
@ -444,7 +466,7 @@ export function JLmapDriving(dom, data, skinCode,storemod) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (scope.raycasterswitch == 'switch') {
|
if (scope.raycasterswitch == 'switch') {
|
||||||
const intersects = raycaster.intersectObjects( mapdata.sectionlist.switchs.modellist, true);
|
let intersects = raycaster.intersectObjects( mapdata.sectionlist.switchs.modellist, true);
|
||||||
|
|
||||||
if (intersects[0]) {
|
if (intersects[0]) {
|
||||||
scope.helpbox = new THREE.BoxHelper( intersects[0].object, 0xff0000 );
|
scope.helpbox = new THREE.BoxHelper( intersects[0].object, 0xff0000 );
|
||||||
|
@ -157,13 +157,13 @@ export function Jl3dDriving(updatemmi,sound) {
|
|||||||
if (trainlisttest.list[code].runMode == '02') {
|
if (trainlisttest.list[code].runMode == '02') {
|
||||||
|
|
||||||
if (trainlisttest.list[code].isStandTrack == true) {
|
if (trainlisttest.list[code].isStandTrack == true) {
|
||||||
trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/20/trainlisttest.list[code].len);
|
trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/21/trainlisttest.list[code].len);
|
||||||
} else {
|
} else {
|
||||||
trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/20/trainlisttest.list[code].len);
|
trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/21/trainlisttest.list[code].len);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/20/trainlisttest.list[code].len);
|
trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/21/trainlisttest.list[code].len);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code == drivingcode) {
|
if (code == drivingcode) {
|
||||||
@ -195,6 +195,7 @@ export function Jl3dDriving(updatemmi,sound) {
|
|||||||
} else {
|
} else {
|
||||||
updatemmi.updateatospeed(-1);
|
updatemmi.updateatospeed(-1);
|
||||||
}
|
}
|
||||||
|
if(trainlisttest.list[code].progress<1){
|
||||||
let syncdata = {
|
let syncdata = {
|
||||||
type: 'Train',
|
type: 'Train',
|
||||||
code: code,
|
code: code,
|
||||||
@ -212,6 +213,8 @@ export function Jl3dDriving(updatemmi,sound) {
|
|||||||
// console.log("=============");
|
// console.log("=============");
|
||||||
scope.teststomp.send('/app/topic/simulation/client/drive', syncdata);
|
scope.teststomp.send('/app/topic/simulation/client/drive', syncdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -426,6 +429,7 @@ export function Jl3dDriving(updatemmi,sound) {
|
|||||||
trainlisttest.list[code].progress = (rotaposx-rails.linkrail[data.body[i].linkCode].lp.x)/rails.linkrail[data.body[i].linkCode].lengthfact;
|
trainlisttest.list[code].progress = (rotaposx-rails.linkrail[data.body[i].linkCode].lp.x)/rails.linkrail[data.body[i].linkCode].lengthfact;
|
||||||
trainlisttest.list[code].status = '02';
|
trainlisttest.list[code].status = '02';
|
||||||
trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineleft;
|
trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineleft;
|
||||||
|
trainlisttest.list[code].nextcurve = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (data.body[i].directionType == '03') { // 向左
|
} else if (data.body[i].directionType == '03') { // 向左
|
||||||
@ -442,23 +446,36 @@ export function Jl3dDriving(updatemmi,sound) {
|
|||||||
trainlisttest.list[code].progress = 1-(rotaposx-rails.linkrail[data.body[i].linkCode].lp.x)/rails.linkrail[data.body[i].linkCode].lengthfact;
|
trainlisttest.list[code].progress = 1-(rotaposx-rails.linkrail[data.body[i].linkCode].lp.x)/rails.linkrail[data.body[i].linkCode].lengthfact;
|
||||||
trainlisttest.list[code].status = '03';
|
trainlisttest.list[code].status = '03';
|
||||||
trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineright;
|
trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineright;
|
||||||
|
trainlisttest.list[code].nextcurve = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// console.log(rails.linkrail[data.body[i].linkCode]);
|
|
||||||
// console.log(data.body[i].linkCode)
|
|
||||||
// console.log(nextcode);
|
|
||||||
|
|
||||||
|
|
||||||
trainlisttest.list[code].len = rails.linkrail[data.body[i].linkCode].lengthfact;
|
trainlisttest.list[code].len = rails.linkrail[data.body[i].linkCode].lengthfact;
|
||||||
if(trainlisttest.list[code].nextcurve == null){
|
if(trainlisttest.list[code].nextcurve == null){
|
||||||
|
if(code != drivingcode){
|
||||||
|
let nextcode;
|
||||||
|
if(data.body[i].directionType == '02'){
|
||||||
|
if(rails.linkrail[data.body[i].linkCode].lineleft){
|
||||||
|
trainlisttest.list[code].status = '02';
|
||||||
|
trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineleft;
|
||||||
|
trainlisttest.list[code].len = rails.linkrail[data.body[i].linkCode].lengthfact;
|
||||||
|
trainlisttest.list[code].progress = data.body[i].linkOffsetPercent;
|
||||||
|
trainlisttest.list[code].speeds = parseFloat(trainlisttest.list[code].speed*10/36/21/trainlisttest.list[code].len);
|
||||||
|
}
|
||||||
|
}else if(data.body[i].directionType == '03'){
|
||||||
|
if(rails.linkrail[data.body[i].linkCode].lineright){
|
||||||
|
trainlisttest.list[code].status = '03';
|
||||||
|
trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineright;
|
||||||
|
trainlisttest.list[code].len = rails.linkrail[data.body[i].linkCode].lengthfact;
|
||||||
|
trainlisttest.list[code].progress = 1-data.body[i].linkOffsetPercent;
|
||||||
|
trainlisttest.list[code].speeds = parseFloat(trainlisttest.list[code].speed*10/36/21/trainlisttest.list[code].len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
trainlisttest.list[code].nextcode = nextcode;
|
||||||
|
}else{
|
||||||
let nextcode;
|
let nextcode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(data.body[i].directionType == '02'){
|
if(data.body[i].directionType == '02'){
|
||||||
trainlisttest.list[code].status = '02';
|
trainlisttest.list[code].status = '02';
|
||||||
@ -478,10 +495,12 @@ export function Jl3dDriving(updatemmi,sound) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
trainlisttest.list[code].nextcode = nextcode;
|
trainlisttest.list[code].nextcode = nextcode;
|
||||||
|
}
|
||||||
|
|
||||||
console.log(data.body[i].directionType);
|
|
||||||
console.log(data.body[i].linkCode);
|
// console.log(data.body[i].directionType);
|
||||||
console.log(rails.linkrail[data.body[i].linkCode].lengthfact);
|
// console.log(data.body[i].linkCode);
|
||||||
|
// console.log(rails.linkrail[data.body[i].linkCode].lengthfact);
|
||||||
// console.log(rails.linkrail[data.body[i].linkCode].lconnect);
|
// console.log(rails.linkrail[data.body[i].linkCode].lconnect);
|
||||||
// console.log(rails.linkrail[data.body[i].linkCode].rconnect);
|
// console.log(rails.linkrail[data.body[i].linkCode].rconnect);
|
||||||
// console.log("--------------------");
|
// console.log("--------------------");
|
||||||
@ -489,8 +508,8 @@ export function Jl3dDriving(updatemmi,sound) {
|
|||||||
// console.log(rails.linkrail[rails.linkrail[data.body[i].linkCode].lconnect].rconnect);
|
// console.log(rails.linkrail[rails.linkrail[data.body[i].linkCode].lconnect].rconnect);
|
||||||
// console.log("---------------------");
|
// console.log("---------------------");
|
||||||
// console.log(trainlisttest.list[code].curve.points);
|
// console.log(trainlisttest.list[code].curve.points);
|
||||||
// console.log(rails.linkrail[nextcode].lineright.points);
|
// console.log(rails.linkrail[nextcode].lineleft.points);
|
||||||
console.log("***********************");
|
// console.log("***********************");
|
||||||
// console.log(rails.linkrail[nextcode].lineleft.points);
|
// console.log(rails.linkrail[nextcode].lineleft.points);
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,8 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
if(trainmodel.status == "03"){
|
if(trainmodel.status == "03"){
|
||||||
if(movecurve.points.length>1){
|
if(movecurve.points.length>1){
|
||||||
let point = movecurve.getPointAt(traindata.group.children[j].progress);
|
let point = movecurve.getPointAt(traindata.group.children[j].progress);
|
||||||
if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.01){
|
|
||||||
|
if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.001){
|
||||||
trainmodel.children[0].up = new THREE.Vector3(-1,0,0);
|
trainmodel.children[0].up = new THREE.Vector3(-1,0,0);
|
||||||
let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize();
|
let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize();
|
||||||
trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize();
|
trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize();
|
||||||
@ -51,7 +52,7 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
trainmodel.children[rs].position.z += offsetz;
|
trainmodel.children[rs].position.z += offsetz;
|
||||||
|
|
||||||
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
||||||
if((trainmodel.children[rs].matrixWorld.elements[12]-8)<=trainmodel.children[rs].rotalist[0].posr.x){
|
if((trainmodel.children[rs].matrixWorld.elements[12]-6)<=trainmodel.children[rs].rotalist[0].posr.x){
|
||||||
|
|
||||||
if(rs != 5){
|
if(rs != 5){
|
||||||
let asd = trainmodel.children[rs].rotalist[0];
|
let asd = trainmodel.children[rs].rotalist[0];
|
||||||
@ -77,7 +78,8 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
if(trainmodel.status == "02"){
|
if(trainmodel.status == "02"){
|
||||||
if(movecurve.points.length>1){
|
if(movecurve.points.length>1){
|
||||||
let point = movecurve.getPointAt(trainmodel.progress);
|
let point = movecurve.getPointAt(trainmodel.progress);
|
||||||
if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.01){
|
|
||||||
|
if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.001){
|
||||||
trainmodel.children[0].up = new THREE.Vector3(1,0,0);
|
trainmodel.children[0].up = new THREE.Vector3(1,0,0);
|
||||||
let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize();
|
let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize();
|
||||||
trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize();
|
trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize();
|
||||||
@ -108,7 +110,7 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
trainmodel.children[rs].position.z += offsetz;
|
trainmodel.children[rs].position.z += offsetz;
|
||||||
|
|
||||||
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
||||||
if((trainmodel.children[rs].matrixWorld.elements[12]+8)>=trainmodel.children[rs].rotalist[0].posr.x){
|
if((trainmodel.children[rs].matrixWorld.elements[12]+6)>=trainmodel.children[rs].rotalist[0].posr.x){
|
||||||
|
|
||||||
if(rs != 5){
|
if(rs != 5){
|
||||||
let asd = trainmodel.children[rs].rotalist[0];
|
let asd = trainmodel.children[rs].rotalist[0];
|
||||||
@ -132,8 +134,6 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
}
|
}
|
||||||
// console.log(trainmodel.rotalist);
|
// console.log(trainmodel.rotalist);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
trainmodel.progress += trainmodel.speeds;
|
trainmodel.progress += trainmodel.speeds;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -142,12 +142,19 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
// if(trainmodel.status == '02'){
|
// if(trainmodel.status == '02'){
|
||||||
// }else if(trainmodel.status == '03'){
|
// }else if(trainmodel.status == '03'){
|
||||||
// }
|
// }
|
||||||
trainmodel.curve = trainmodel.nextcurve;
|
|
||||||
trainmodel.nextcurve = null;
|
|
||||||
trainmodel.nextlen = null;
|
|
||||||
trainmodel.progress = 0;
|
trainmodel.progress = 0;
|
||||||
trainmodel.len = trainmodel.nextlen;
|
trainmodel.len = trainmodel.nextlen;
|
||||||
trainmodel.nowcode = trainmodel.nextcode;
|
trainmodel.nowcode = trainmodel.nextcode;
|
||||||
|
trainmodel.speeds = parseFloat(trainmodel.speed*10/36/21/trainmodel.len);
|
||||||
|
trainmodel.curve = trainmodel.nextcurve;
|
||||||
|
|
||||||
|
trainmodel.nextcurve = null;
|
||||||
|
trainmodel.nextlen = null;
|
||||||
|
trainmodel.nextcode = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log(trainmodel.name);
|
// console.log(trainmodel.name);
|
||||||
@ -203,7 +210,7 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
trainmodel.children[rs].position.z += offsetz;
|
trainmodel.children[rs].position.z += offsetz;
|
||||||
|
|
||||||
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
||||||
if((trainmodel.children[rs].matrixWorld.elements[12]-8)<=trainmodel.children[rs].rotalist[0].posr.x){
|
if((trainmodel.children[rs].matrixWorld.elements[12]-6)<=trainmodel.children[rs].rotalist[0].posr.x){
|
||||||
|
|
||||||
if(rs != 5){
|
if(rs != 5){
|
||||||
let asd = trainmodel.children[rs].rotalist[0];
|
let asd = trainmodel.children[rs].rotalist[0];
|
||||||
@ -264,7 +271,7 @@ export function UpdateTrain(camera,traindata,control){
|
|||||||
trainmodel.children[rs].position.z += offsetz;
|
trainmodel.children[rs].position.z += offsetz;
|
||||||
|
|
||||||
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
for(let xh=0;xh<trainmodel.children[rs].rotalist.length;xh++){
|
||||||
if((trainmodel.children[rs].matrixWorld.elements[12]+8)>=trainmodel.children[rs].rotalist[0].posr.x){
|
if((trainmodel.children[rs].matrixWorld.elements[12]+6)>=trainmodel.children[rs].rotalist[0].posr.x){
|
||||||
|
|
||||||
if(rs != 5){
|
if(rs != 5){
|
||||||
let asd = trainmodel.children[rs].rotalist[0];
|
let asd = trainmodel.children[rs].rotalist[0];
|
||||||
|
@ -17,7 +17,6 @@ import { SetRender } from '@/jlmap3d/config/SetRender';
|
|||||||
import { SetScene } from '@/jlmap3d/config/SetScene';
|
import { SetScene } from '@/jlmap3d/config/SetScene';
|
||||||
import { SetLights } from '@/jlmap3d/config/SetLights';
|
import { SetLights } from '@/jlmap3d/config/SetLights';
|
||||||
|
|
||||||
|
|
||||||
//controls
|
//controls
|
||||||
import { OrbitControls } from '@/jlmap3d/main/control/OrbitControls';
|
import { OrbitControls } from '@/jlmap3d/main/control/OrbitControls';
|
||||||
import { DragControls } from '@/jlmap3d/main/control/DragControls';
|
import { DragControls } from '@/jlmap3d/main/control/DragControls';
|
||||||
|
@ -9,7 +9,7 @@ let defaultsignal = {
|
|||||||
deviceType:"signal",
|
deviceType:"signal",
|
||||||
type:"low",
|
type:"low",
|
||||||
picUrl:"",
|
picUrl:"",
|
||||||
assetUrl:"https://joylink.club/oss/models/signal/d3d.FBX"
|
assetUrl:"../../static/model/signal/d3d.FBX"
|
||||||
}
|
}
|
||||||
|
|
||||||
let defaulttrain = {
|
let defaulttrain = {
|
||||||
@ -107,7 +107,7 @@ export function AssetLoader(){
|
|||||||
this.materiallist = [];
|
this.materiallist = [];
|
||||||
//初始化资源加载器
|
//初始化资源加载器
|
||||||
this.setmodellist = function (data){
|
this.setmodellist = function (data){
|
||||||
|
// console.log("setmodellist");
|
||||||
let defaultmodel1 = new AssetModel(defaultsignal);
|
let defaultmodel1 = new AssetModel(defaultsignal);
|
||||||
scope.modellist.push(defaultmodel1);
|
scope.modellist.push(defaultmodel1);
|
||||||
|
|
||||||
@ -445,7 +445,6 @@ export function AssetLoader(){
|
|||||||
let mixer = new THREE.AnimationMixer( object );
|
let mixer = new THREE.AnimationMixer( object );
|
||||||
//object.traverse(function (node) {//获取其中对象
|
//object.traverse(function (node) {//获取其中对象
|
||||||
// node.frustumCulled = true;
|
// node.frustumCulled = true;
|
||||||
//
|
|
||||||
//});
|
//});
|
||||||
|
|
||||||
|
|
||||||
@ -455,7 +454,7 @@ export function AssetLoader(){
|
|||||||
let name = "c"+j;
|
let name = "c"+j;
|
||||||
for(let i=0;i<object.children.length;i++){
|
for(let i=0;i<object.children.length;i++){
|
||||||
if(object.children[i].name == name){
|
if(object.children[i].name == name){
|
||||||
object.children[i].position.x = object.children[i].position.x+10;
|
object.children[i].position.x = object.children[i].position.x;
|
||||||
//object.children[i].position.y = j*10;
|
//object.children[i].position.y = j*10;
|
||||||
realtrain.add(object.children[i]);
|
realtrain.add(object.children[i]);
|
||||||
i--;
|
i--;
|
||||||
|
@ -65,6 +65,7 @@ export function ModelLoad(data,scope,netdata,mapdata,camera,controls,scene,store
|
|||||||
let switchdata = JSON.parse(netdata.switchs);
|
let switchdata = JSON.parse(netdata.switchs);
|
||||||
let signaldata = JSON.parse(netdata.signals);
|
let signaldata = JSON.parse(netdata.signals);
|
||||||
let standsdata = JSON.parse(netdata.stands);
|
let standsdata = JSON.parse(netdata.stands);
|
||||||
|
console.log(netdata.assets);
|
||||||
assetloader.setmodellist(netdata.assets);
|
assetloader.setmodellist(netdata.assets);
|
||||||
|
|
||||||
assetloader.assetpromise(sceneload)
|
assetloader.assetpromise(sceneload)
|
||||||
@ -101,6 +102,13 @@ export function ModelLoad(data,scope,netdata,mapdata,camera,controls,scene,store
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
.then(function(data){
|
.then(function(data){
|
||||||
|
for(let mn=0;mn<scope.assetloader.modellist.length;mn++){
|
||||||
|
if(scope.assetloader.modellist[mn].name && scope.assetloader.modellist[mn].name == "suidao"){
|
||||||
|
// scope.assetloader.modellist[mn].mesh.rotation.x = Math.PI/2;
|
||||||
|
console.log(scope.assetloader.modellist[mn].mesh.position);
|
||||||
|
scene.add(scope.assetloader.modellist[mn].mesh);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
scope.animateswitch = true;
|
scope.animateswitch = true;
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ export function ModelLoad(data,scope,netdata,mapdata,camera,controls,scene,mixer
|
|||||||
|
|
||||||
if(netdata.assets){
|
if(netdata.assets){
|
||||||
let assetsdata = JSON.parse(netdata.sections);
|
let assetsdata = JSON.parse(netdata.sections);
|
||||||
console.log(netdata);
|
// console.log(netdata);
|
||||||
if(assetsdata.link){
|
if(assetsdata.link){
|
||||||
isSection = true;
|
isSection = true;
|
||||||
}
|
}
|
||||||
@ -57,13 +57,13 @@ export function ModelLoad(data,scope,netdata,mapdata,camera,controls,scene,mixer
|
|||||||
jlmap3ddata.stationstandlist = new StationStandList();
|
jlmap3ddata.stationstandlist = new StationStandList();
|
||||||
//初始化测试列车
|
//初始化测试列车
|
||||||
jlmap3ddata.trainlisttest = new TrainList();
|
jlmap3ddata.trainlisttest = new TrainList();
|
||||||
|
|
||||||
|
jlmap3ddata.realsectionlist = new RealSectionList();
|
||||||
jlmap3ddata.rails = new RailList();
|
jlmap3ddata.rails = new RailList();
|
||||||
let loaderdata = JSON.parse(netdata.sections);
|
let loaderdata = JSON.parse(netdata.sections);
|
||||||
let switchdata = JSON.parse(netdata.switchs);
|
let switchdata = JSON.parse(netdata.switchs);
|
||||||
let signaldata = JSON.parse(netdata.signals);
|
let signaldata = JSON.parse(netdata.signals);
|
||||||
let standsdata = JSON.parse(netdata.stands);
|
let standsdata = JSON.parse(netdata.stands);
|
||||||
jlmap3ddata.realsectionlist = new RealSectionList();
|
|
||||||
|
|
||||||
assetloader.setmodellist(netdata.assets);
|
assetloader.setmodellist(netdata.assets);
|
||||||
|
|
||||||
assetloader.assetpromise(sceneload)
|
assetloader.assetpromise(sceneload)
|
||||||
@ -99,55 +99,17 @@ export function ModelLoad(data,scope,netdata,mapdata,camera,controls,scene,mixer
|
|||||||
|
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
// .then(function(data){
|
|
||||||
// return new Promise(function(resolve, reject){
|
|
||||||
//
|
|
||||||
// let loader = new THREE.OBJLoader( );
|
|
||||||
//
|
|
||||||
// loader.load( '../../static/rail/fuzhoupath.obj', function ( obj ) {
|
|
||||||
//
|
|
||||||
// let object = obj;
|
|
||||||
// //console.log(object.children.length);
|
|
||||||
//
|
|
||||||
// let rail = [];
|
|
||||||
// for(let i=0;i<object.children.length;i++){
|
|
||||||
// let name = object.children[i].name.split("_");
|
|
||||||
// let newmeshname = name[0]+"_"+name[1]+"_"+name[2]+"."+name[3];
|
|
||||||
//
|
|
||||||
// let vexlist = [];
|
|
||||||
// //console.log( object.children[i].geometry.attributes.position.array);
|
|
||||||
// for(let j=0;j<object.children[i].geometry.attributes.position.array.length;j){
|
|
||||||
// //console.log(object.children[i].geometry.attributes.position.array[j]);
|
|
||||||
// let ved = new THREE.Vector3( object.children[i].geometry.attributes.position.array[j], object.children[i].geometry.attributes.position.array[j+1], object.children[i].geometry.attributes.position.array[j+2] );
|
|
||||||
// j=j+3;
|
|
||||||
//
|
|
||||||
// vexlist.push(ved);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if(jlmap3ddata.sectionlist.sections.datalist[newmeshname].code){
|
|
||||||
// jlmap3ddata.sectionlist.sections.datalist[newmeshname].rail = vexlist;
|
|
||||||
// //console.log(jlmap3ddata.sectionlist.sections.datalist[n].rail.length);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// resolve("loadedrealsection");
|
|
||||||
// }, onProgress, onError );
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
// })
|
|
||||||
.then(function(data){
|
|
||||||
|
|
||||||
|
.then(function(data){
|
||||||
for(let mn=0;mn<scope.assetloader.modellist.length;mn++){
|
for(let mn=0;mn<scope.assetloader.modellist.length;mn++){
|
||||||
if(scope.assetloader.modellist[mn].name && scope.assetloader.modellist[mn].name == "驾驶台"){
|
|
||||||
scope.assetloader.modellist[mn].mesh.position.y = -50000;
|
|
||||||
// scene.add(scope.assetloader.modellist[mn].mesh);
|
|
||||||
}
|
|
||||||
if(scope.assetloader.modellist[mn].name && scope.assetloader.modellist[mn].name == "suidao"){
|
if(scope.assetloader.modellist[mn].name && scope.assetloader.modellist[mn].name == "suidao"){
|
||||||
scope.assetloader.modellist[mn].mesh.rotation.x = Math.PI/2;
|
// scope.assetloader.modellist[mn].mesh.rotation.x = Math.PI/2;
|
||||||
|
scope.assetloader.modellist[mn].mesh.position.y -=0.1;
|
||||||
scene.add(scope.assetloader.modellist[mn].mesh);
|
scene.add(scope.assetloader.modellist[mn].mesh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
scope.animateswitch = true;
|
scope.animateswitch = true;
|
||||||
|
|
||||||
mapdata = jlmap3ddata;
|
mapdata = jlmap3ddata;
|
||||||
|
@ -10,6 +10,7 @@ export function RailList(){
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.init = function(linkdata,switchdata,scene,storemod){
|
this.init = function(linkdata,switchdata,scene,storemod){
|
||||||
|
|
||||||
for(let i=0;i<linkdata.length;i++){
|
for(let i=0;i<linkdata.length;i++){
|
||||||
scope.linkrail[linkdata[i].code] = {
|
scope.linkrail[linkdata[i].code] = {
|
||||||
lp:linkdata[i].rail[0],
|
lp:linkdata[i].rail[0],
|
||||||
@ -19,10 +20,25 @@ export function RailList(){
|
|||||||
lengthfact:linkdata[i].lengthfact,
|
lengthfact:linkdata[i].lengthfact,
|
||||||
lineleft:null,
|
lineleft:null,
|
||||||
lineright:null,
|
lineright:null,
|
||||||
points:[]
|
points:[],
|
||||||
|
type:null
|
||||||
};
|
};
|
||||||
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].lp.x,0,scope.linkrail[linkdata[i].code].lp.z));
|
if(linkdata[i].rotation._z == 0){
|
||||||
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].rp.x,0,scope.linkrail[linkdata[i].code].rp.z));
|
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].lp.x+2,0,scope.linkrail[linkdata[i].code].lp.z));
|
||||||
|
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].rp.x-2,0,scope.linkrail[linkdata[i].code].rp.z));
|
||||||
|
scope.linkrail[linkdata[i].code].type = 0;
|
||||||
|
}else{
|
||||||
|
|
||||||
|
if(linkdata[i].rotation._z>0){
|
||||||
|
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].lp.x+2.1,0,scope.linkrail[linkdata[i].code].lp.z-0.6));
|
||||||
|
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].rp.x-2.1,0,scope.linkrail[linkdata[i].code].rp.z+0.6));
|
||||||
|
scope.linkrail[linkdata[i].code].type = 1;
|
||||||
|
}else{
|
||||||
|
scope.linkrail[linkdata[i].code].type = 2;
|
||||||
|
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].lp.x+2.1,0,scope.linkrail[linkdata[i].code].lp.z+0.6));
|
||||||
|
scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].rp.x-2.1,0,scope.linkrail[linkdata[i].code].rp.z-0.6));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
for(let i=0;i<switchdata.length;i++){
|
for(let i=0;i<switchdata.length;i++){
|
||||||
@ -37,21 +53,45 @@ export function RailList(){
|
|||||||
|
|
||||||
if(scope.linkrail[switchdata[i].blink].lp.x < switchdata[i].position.x){
|
if(scope.linkrail[switchdata[i].blink].lp.x < switchdata[i].position.x){
|
||||||
scope.linkrail[switchdata[i].blink].points.push(new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
scope.linkrail[switchdata[i].blink].points.push(new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
||||||
scope.linkrail[switchdata[i].blink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x,0,scope.linkrail[switchdata[i].alink].lp.z));
|
if(scope.linkrail[switchdata[i].alink].type == 1){
|
||||||
|
scope.linkrail[switchdata[i].blink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x+2.1,0,scope.linkrail[switchdata[i].alink].lp.z-0.6));
|
||||||
|
}else if(scope.linkrail[switchdata[i].alink].type == 2){
|
||||||
|
scope.linkrail[switchdata[i].blink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x+2.1,0,scope.linkrail[switchdata[i].alink].lp.z+0.6));
|
||||||
|
}else{
|
||||||
|
scope.linkrail[switchdata[i].blink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x+2,0,scope.linkrail[switchdata[i].alink].lp.z));
|
||||||
|
}
|
||||||
scope.switchrail[switchdata[i].code].directtype = "1";
|
scope.switchrail[switchdata[i].code].directtype = "1";
|
||||||
}else{
|
}else{
|
||||||
scope.linkrail[switchdata[i].blink].points.splice(0,0,new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
scope.linkrail[switchdata[i].blink].points.splice(0,0,new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
||||||
scope.linkrail[switchdata[i].blink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x,0,scope.linkrail[switchdata[i].alink].rp.z));
|
if(scope.linkrail[switchdata[i].alink].type == 1){
|
||||||
|
scope.linkrail[switchdata[i].blink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x-2.1,0,scope.linkrail[switchdata[i].alink].rp.z+0.6));
|
||||||
|
}else if(scope.linkrail[switchdata[i].alink].type == 2){
|
||||||
|
scope.linkrail[switchdata[i].blink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x-2.1,0,scope.linkrail[switchdata[i].alink].rp.z-0.6));
|
||||||
|
}else{
|
||||||
|
scope.linkrail[switchdata[i].blink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x-2,0,scope.linkrail[switchdata[i].alink].rp.z));
|
||||||
|
}
|
||||||
scope.switchrail[switchdata[i].code].directtype = "2";
|
scope.switchrail[switchdata[i].code].directtype = "2";
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
if(scope.linkrail[switchdata[i].clink].lp.x < switchdata[i].position.x){
|
if(scope.linkrail[switchdata[i].clink].lp.x < switchdata[i].position.x){
|
||||||
scope.linkrail[switchdata[i].clink].points.push(new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
scope.linkrail[switchdata[i].clink].points.push(new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
||||||
scope.linkrail[switchdata[i].clink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x,0,scope.linkrail[switchdata[i].alink].lp.z));
|
if(scope.linkrail[switchdata[i].alink].type == 1){
|
||||||
|
scope.linkrail[switchdata[i].clink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x+2.1,0,scope.linkrail[switchdata[i].alink].lp.z-0.6));
|
||||||
|
}else if(scope.linkrail[switchdata[i].alink].type == 2){
|
||||||
|
scope.linkrail[switchdata[i].clink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x+2.1,0,scope.linkrail[switchdata[i].alink].lp.z+0.6));
|
||||||
|
}else{
|
||||||
|
scope.linkrail[switchdata[i].clink].points.push(new THREE.Vector3(scope.linkrail[switchdata[i].alink].lp.x+2,0,scope.linkrail[switchdata[i].alink].lp.z));
|
||||||
|
}
|
||||||
scope.switchrail[switchdata[i].code].directtype = "1";
|
scope.switchrail[switchdata[i].code].directtype = "1";
|
||||||
}else{
|
}else{
|
||||||
scope.linkrail[switchdata[i].clink].points.splice(0,0,new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
scope.linkrail[switchdata[i].clink].points.splice(0,0,new THREE.Vector3(switchdata[i].position.x,switchdata[i].position.y,switchdata[i].position.z));
|
||||||
scope.linkrail[switchdata[i].clink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x,0,scope.linkrail[switchdata[i].alink].rp.z));
|
if(scope.linkrail[switchdata[i].alink].type == 1){
|
||||||
|
scope.linkrail[switchdata[i].clink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x-2.1,0,scope.linkrail[switchdata[i].alink].rp.z+0.6));
|
||||||
|
}else if(scope.linkrail[switchdata[i].alink].type == 2){
|
||||||
|
scope.linkrail[switchdata[i].clink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x-2.1,0,scope.linkrail[switchdata[i].alink].rp.z-0.6));
|
||||||
|
}else{
|
||||||
|
scope.linkrail[switchdata[i].clink].points.splice(0,0,new THREE.Vector3(scope.linkrail[switchdata[i].alink].rp.x-2,0,scope.linkrail[switchdata[i].alink].rp.z));
|
||||||
|
}
|
||||||
scope.switchrail[switchdata[i].code].directtype = "2";
|
scope.switchrail[switchdata[i].code].directtype = "2";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,6 +120,8 @@ export function RailList(){
|
|||||||
}
|
}
|
||||||
for(let i=0;i<linkdata.length;i++){
|
for(let i=0;i<linkdata.length;i++){
|
||||||
scope.linkrail[linkdata[i].code].lineleft = new THREE.CatmullRomCurve3(scope.linkrail[linkdata[i].code].points);
|
scope.linkrail[linkdata[i].code].lineleft = new THREE.CatmullRomCurve3(scope.linkrail[linkdata[i].code].points);
|
||||||
|
// scope.linkrail[linkdata[i].code].lineleft.curveType = "catmullrom";
|
||||||
|
// scope.linkrail[linkdata[i].code].lineleft.tension = 0.2;
|
||||||
let rightpoints = [];
|
let rightpoints = [];
|
||||||
scope.linkrail[linkdata[i].code].points.forEach(item=>{
|
scope.linkrail[linkdata[i].code].points.forEach(item=>{
|
||||||
rightpoints.push(item);
|
rightpoints.push(item);
|
||||||
@ -87,6 +129,8 @@ export function RailList(){
|
|||||||
);
|
);
|
||||||
rightpoints.reverse();
|
rightpoints.reverse();
|
||||||
scope.linkrail[linkdata[i].code].lineright = new THREE.CatmullRomCurve3(rightpoints);
|
scope.linkrail[linkdata[i].code].lineright = new THREE.CatmullRomCurve3(rightpoints);
|
||||||
|
// scope.linkrail[linkdata[i].code].lineright.curveType = "catmullrom";
|
||||||
|
// scope.linkrail[linkdata[i].code].lineright.tension = 0.1;
|
||||||
var points = scope.linkrail[linkdata[i].code].lineleft.getPoints( 50 );
|
var points = scope.linkrail[linkdata[i].code].lineleft.getPoints( 50 );
|
||||||
var geometry = new THREE.BufferGeometry().setFromPoints( points );
|
var geometry = new THREE.BufferGeometry().setFromPoints( points );
|
||||||
|
|
||||||
@ -95,14 +139,8 @@ export function RailList(){
|
|||||||
// Create the final object to add to the scene
|
// Create the final object to add to the scene
|
||||||
var curveObject = new THREE.Line( geometry, material );
|
var curveObject = new THREE.Line( geometry, material );
|
||||||
scene.add(curveObject);
|
scene.add(curveObject);
|
||||||
console.log(scope.linkrail[linkdata[i].code].lineleft.points);
|
|
||||||
console.log(scope.linkrail[linkdata[i].code].lineright.points);
|
|
||||||
console.log("**********************");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log(linkdata);
|
|
||||||
console.log(scope.linkrail);
|
|
||||||
console.log(scope.switchrail);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getrail = function(){
|
this.getrail = function(){
|
||||||
|
@ -285,7 +285,9 @@ export default {
|
|||||||
.trainstatus{
|
.trainstatus{
|
||||||
left:0;
|
left:0;
|
||||||
top:0;
|
top:0;
|
||||||
width:350px;
|
width:fit-content;
|
||||||
|
width:-webkit-fit-content;
|
||||||
|
width:-moz-fit-content;
|
||||||
height:30px;
|
height:30px;
|
||||||
background: #000000;
|
background: #000000;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
static/model/signal/d3d.FBX
Normal file
BIN
static/model/signal/d3d.FBX
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user