测试站台关联关系
This commit is contained in:
parent
fa5c16a337
commit
82ef30607f
@ -1,8 +1,5 @@
|
||||
import { distance2, getRectangleCenter } from 'jl-graphic';
|
||||
import { GPConsts } from './PlatformConfig.js';
|
||||
import { JlPlatform } from './JlPlatform.js';
|
||||
import { GPStation } from '../Station/GPStation.js';
|
||||
import { JlSection } from '../Section/common/Section.js';
|
||||
|
||||
class GPPlatform extends JlPlatform {
|
||||
constructor() {
|
||||
@ -16,54 +13,13 @@ class GPPlatform extends JlPlatform {
|
||||
super.draw();
|
||||
}
|
||||
buildRelation() {
|
||||
const stationas = this.queryStore.queryByType(GPStation.Type);
|
||||
for (let i = 0; i < stationas.length; i++) {
|
||||
const sP = stationas[i].localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
this.relationManage.addRelation(this, stationas[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
const sections = this.queryStore.queryByType(JlSection.Type);
|
||||
const minDistanceRefSections = [];
|
||||
sections.forEach((section) => {
|
||||
const sP = section.localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
minDistanceRefSections.push(section);
|
||||
}
|
||||
});
|
||||
if (minDistanceRefSections) {
|
||||
const refSection = minDistanceRefSections.reduce((prev, cur) => {
|
||||
return distance2(prev.localToCanvasPoint(getRectangleCenter(prev.getLocalBounds())), this.position) >
|
||||
distance2(cur.localToCanvasPoint(getRectangleCenter(cur.getLocalBounds())), this.position)
|
||||
? cur
|
||||
: prev;
|
||||
});
|
||||
this.relationManage.deleteRelationOfGraphicAndOtherType(this, JlSection.Type);
|
||||
this.relationManage.addRelation(this, refSection);
|
||||
}
|
||||
super.buildCommonRelation();
|
||||
}
|
||||
saveRelations() {
|
||||
const refStation = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, GPStation.Type)
|
||||
.map((relation) => relation.getOtherGraphic(this).datas.id);
|
||||
if (refStation.length) {
|
||||
this.datas.refStation = refStation[0];
|
||||
}
|
||||
const refSection = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlSection.Type)
|
||||
.map((relation) => relation.getOtherGraphic(this).datas.id);
|
||||
if (refSection.length) {
|
||||
this.datas.refSection = refSection[0];
|
||||
}
|
||||
super.saveCommonRelations();
|
||||
}
|
||||
loadRelations() {
|
||||
if (this.datas.refStation) {
|
||||
this.relationManage.addRelation(this, this.queryStore.queryById(this.datas.refStation));
|
||||
}
|
||||
if (this.datas.refSection) {
|
||||
this.relationManage.addRelation(this, this.queryStore.queryById(this.datas.refSection));
|
||||
}
|
||||
super.loadCommonRelations();
|
||||
}
|
||||
}
|
||||
|
||||
|
3
components/packages/Platform/JlPlatform.d.ts
vendored
3
components/packages/Platform/JlPlatform.d.ts
vendored
@ -48,5 +48,8 @@ export declare abstract class JlPlatform extends JlGraphic {
|
||||
get datas(): IPlatformData;
|
||||
get code(): string;
|
||||
draw(): void;
|
||||
buildCommonRelation(): void;
|
||||
saveCommonRelations(): void;
|
||||
loadCommonRelations(): void;
|
||||
}
|
||||
export {};
|
||||
|
@ -1,5 +1,7 @@
|
||||
import { calculateMirrorPoint, JlGraphic, getRectangleCenter, VectorText } from 'jl-graphic';
|
||||
import { calculateMirrorPoint, JlGraphic, distance2, getRectangleCenter, VectorText } from 'jl-graphic';
|
||||
import { Container, Point, Graphics, Color, Rectangle } from 'pixi.js';
|
||||
import { JlSection } from '../Section/common/Section.js';
|
||||
import { JlStation } from '../Station/JlStation.js';
|
||||
|
||||
//子元素--矩形
|
||||
class RectGraphic extends Container {
|
||||
@ -225,6 +227,56 @@ class JlPlatform extends JlGraphic {
|
||||
draw() {
|
||||
this.rectGraphic.draw(this.platformConsts);
|
||||
}
|
||||
buildCommonRelation() {
|
||||
const stationas = this.queryStore.queryByType(JlStation.Type);
|
||||
for (let i = 0; i < stationas.length; i++) {
|
||||
const sP = stationas[i].localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
this.relationManage.addRelation(this, stationas[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
const sections = this.queryStore.queryByType(JlSection.Type);
|
||||
const minDistanceRefSections = [];
|
||||
sections.forEach((section) => {
|
||||
const sP = section.localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
minDistanceRefSections.push(section);
|
||||
}
|
||||
});
|
||||
if (minDistanceRefSections) {
|
||||
const refSection = minDistanceRefSections.reduce((prev, cur) => {
|
||||
return distance2(prev.localToCanvasPoint(getRectangleCenter(prev.getLocalBounds())), this.position) >
|
||||
distance2(cur.localToCanvasPoint(getRectangleCenter(cur.getLocalBounds())), this.position)
|
||||
? cur
|
||||
: prev;
|
||||
});
|
||||
this.relationManage.deleteRelationOfGraphicAndOtherType(this, JlSection.Type);
|
||||
this.relationManage.addRelation(this, refSection);
|
||||
}
|
||||
}
|
||||
saveCommonRelations() {
|
||||
const refStation = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlStation.Type)
|
||||
.map((relation) => relation.getOtherGraphic(this).datas.id);
|
||||
if (refStation.length) {
|
||||
this.datas.refStation = refStation[0];
|
||||
}
|
||||
const refSection = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlSection.Type)
|
||||
.map((relation) => relation.getOtherGraphic(this).datas.id);
|
||||
if (refSection.length) {
|
||||
this.datas.refSection = refSection[0];
|
||||
}
|
||||
}
|
||||
loadCommonRelations() {
|
||||
if (this.datas.refStation) {
|
||||
this.relationManage.addRelation(this, this.queryStore.queryById(this.datas.refStation));
|
||||
}
|
||||
if (this.datas.refSection) {
|
||||
this.relationManage.addRelation(this, this.queryStore.queryById(this.datas.refSection));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export { DoorCodeLozenge, JlPlatform };
|
||||
|
@ -1,7 +1,5 @@
|
||||
import { distance2, getRectangleCenter } from 'jl-graphic';
|
||||
import { THConsts } from './PlatformConfig.js';
|
||||
import { JlPlatform, DoorCodeLozenge } from './JlPlatform.js';
|
||||
import { JlSection } from '../Section/common/Section.js';
|
||||
import { THStation } from '../Station/THStation.js';
|
||||
|
||||
class THPlatform extends JlPlatform {
|
||||
@ -22,15 +20,15 @@ class THPlatform extends JlPlatform {
|
||||
if (this.states.upSkipstop || this.states.downSkipstop) {
|
||||
this.rectGraphic.stateFillColor = THConsts.trainJump;
|
||||
}
|
||||
/* const station = this.getGraphicApp().queryStore.queryByCodeAndType<Station>(
|
||||
this.states.rtuId > 9 ? '' + this.states.rtuId : '0' + this.states.rtuId,
|
||||
Station.Type
|
||||
); */
|
||||
const station = this.getGraphicApp().queryStore.queryByCodeAndType(this.states.rtuId > 9
|
||||
? '' + this.states.rtuId
|
||||
: '0' + this.states.rtuId, THStation.Type);
|
||||
const doorGraphic = this.doorCodeLozenge.doorGraphic;
|
||||
doorGraphic.stateFillColor = THConsts.doorGraphic.doorGreen;
|
||||
/* if (!!station?.states.ipRtuStusDown) {
|
||||
if (!!station?.states.ipRtuStusDown) {
|
||||
doorGraphic.stateFillColor = THConsts.doorGraphic.doorBlue;
|
||||
} */ if (this.states.psdCut) {
|
||||
}
|
||||
else if (this.states.psdCut) {
|
||||
doorGraphic.stateFillColor = THConsts.doorGraphic.doorRed;
|
||||
}
|
||||
super.draw();
|
||||
@ -97,54 +95,13 @@ class THPlatform extends JlPlatform {
|
||||
}
|
||||
}
|
||||
buildRelation() {
|
||||
const stationas = this.queryStore.queryByType(THStation.Type);
|
||||
for (let i = 0; i < stationas.length; i++) {
|
||||
const sP = stationas[i].localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
this.relationManage.addRelation(this, stationas[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
const sections = this.queryStore.queryByType(JlSection.Type);
|
||||
const minDistanceRefSections = [];
|
||||
sections.forEach((section) => {
|
||||
const sP = section.localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
minDistanceRefSections.push(section);
|
||||
}
|
||||
});
|
||||
if (minDistanceRefSections) {
|
||||
const refSection = minDistanceRefSections.reduce((prev, cur) => {
|
||||
return distance2(prev.localToCanvasPoint(getRectangleCenter(prev.getLocalBounds())), this.position) >
|
||||
distance2(cur.localToCanvasPoint(getRectangleCenter(cur.getLocalBounds())), this.position)
|
||||
? cur
|
||||
: prev;
|
||||
});
|
||||
this.relationManage.deleteRelationOfGraphicAndOtherType(this, JlSection.Type);
|
||||
this.relationManage.addRelation(this, refSection);
|
||||
}
|
||||
super.buildCommonRelation();
|
||||
}
|
||||
saveRelations() {
|
||||
const refStation = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, THStation.Type)
|
||||
.map((relation) => relation.getOtherGraphic(this).datas.id);
|
||||
if (refStation.length) {
|
||||
this.datas.refStation = refStation[0];
|
||||
}
|
||||
const refSection = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlSection.Type)
|
||||
.map((relation) => relation.getOtherGraphic(this).datas.id);
|
||||
if (refSection.length) {
|
||||
this.datas.refSection = refSection[0];
|
||||
}
|
||||
super.saveCommonRelations();
|
||||
}
|
||||
loadRelations() {
|
||||
if (this.datas.refStation) {
|
||||
this.relationManage.addRelation(this, this.queryStore.queryById(this.datas.refStation));
|
||||
}
|
||||
if (this.datas.refSection) {
|
||||
this.relationManage.addRelation(this, this.queryStore.queryById(this.datas.refSection));
|
||||
}
|
||||
super.loadCommonRelations();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,68 +20,12 @@ export class GPPlatform extends JlPlatform {
|
||||
super.draw();
|
||||
}
|
||||
buildRelation() {
|
||||
const stationas = this.queryStore.queryByType<GPStation>(GPStation.Type);
|
||||
for (let i = 0; i < stationas.length; i++) {
|
||||
const sP = stationas[i].localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
this.relationManage.addRelation(this, stationas[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
const sections = this.queryStore.queryByType<JlSection>(JlSection.Type);
|
||||
const minDistanceRefSections: JlSection[] = [];
|
||||
sections.forEach((section) => {
|
||||
const sP = section.localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
minDistanceRefSections.push(section);
|
||||
}
|
||||
});
|
||||
if (minDistanceRefSections) {
|
||||
const refSection = minDistanceRefSections.reduce((prev, cur) => {
|
||||
return distance2(
|
||||
prev.localToCanvasPoint(getRectangleCenter(prev.getLocalBounds())),
|
||||
this.position,
|
||||
) >
|
||||
distance2(
|
||||
cur.localToCanvasPoint(getRectangleCenter(cur.getLocalBounds())),
|
||||
this.position,
|
||||
)
|
||||
? cur
|
||||
: prev;
|
||||
});
|
||||
this.relationManage.deleteRelationOfGraphicAndOtherType(
|
||||
this,
|
||||
JlSection.Type,
|
||||
);
|
||||
this.relationManage.addRelation(this, refSection);
|
||||
}
|
||||
super.buildCommonRelation();
|
||||
}
|
||||
saveRelations() {
|
||||
const refStation = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, GPStation.Type)
|
||||
.map((relation) => relation.getOtherGraphic<GPStation>(this).datas.id);
|
||||
if (refStation.length) {
|
||||
this.datas.refStation = refStation[0];
|
||||
}
|
||||
const refSection = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlSection.Type)
|
||||
.map((relation) => relation.getOtherGraphic<JlSection>(this).datas.id);
|
||||
if (refSection.length) {
|
||||
this.datas.refSection = refSection[0];
|
||||
}
|
||||
super.saveCommonRelations();
|
||||
}
|
||||
loadRelations() {
|
||||
if (this.datas.refStation) {
|
||||
this.relationManage.addRelation(
|
||||
this,
|
||||
this.queryStore.queryById<GPStation>(this.datas.refStation),
|
||||
);
|
||||
}
|
||||
if (this.datas.refSection) {
|
||||
this.relationManage.addRelation(
|
||||
this,
|
||||
this.queryStore.queryById<JlSection>(this.datas.refSection),
|
||||
);
|
||||
}
|
||||
super.loadCommonRelations();
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ import {
|
||||
JlGraphic,
|
||||
VectorText,
|
||||
calculateMirrorPoint,
|
||||
distance2,
|
||||
getRectangleCenter,
|
||||
} from 'jl-graphic';
|
||||
import { Container, Graphics, Rectangle, Color, Point } from 'pixi.js';
|
||||
@ -12,6 +13,8 @@ import {
|
||||
LozengeConstsConfig,
|
||||
PlatformConstsConfig,
|
||||
} from './PlatformConfig';
|
||||
import { JlSection } from '../Section/common/Section';
|
||||
import { JlStation } from '../Station/JlStation';
|
||||
|
||||
//子元素--矩形
|
||||
class RectGraphic extends Container {
|
||||
@ -276,4 +279,69 @@ export abstract class JlPlatform extends JlGraphic {
|
||||
draw(): void {
|
||||
this.rectGraphic.draw(this.platformConsts);
|
||||
}
|
||||
buildCommonRelation() {
|
||||
const stationas = this.queryStore.queryByType<JlStation>(JlStation.Type);
|
||||
for (let i = 0; i < stationas.length; i++) {
|
||||
const sP = stationas[i].localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
this.relationManage.addRelation(this, stationas[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
const sections = this.queryStore.queryByType<JlSection>(JlSection.Type);
|
||||
const minDistanceRefSections: JlSection[] = [];
|
||||
sections.forEach((section) => {
|
||||
const sP = section.localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
minDistanceRefSections.push(section);
|
||||
}
|
||||
});
|
||||
if (minDistanceRefSections) {
|
||||
const refSection = minDistanceRefSections.reduce((prev, cur) => {
|
||||
return distance2(
|
||||
prev.localToCanvasPoint(getRectangleCenter(prev.getLocalBounds())),
|
||||
this.position,
|
||||
) >
|
||||
distance2(
|
||||
cur.localToCanvasPoint(getRectangleCenter(cur.getLocalBounds())),
|
||||
this.position,
|
||||
)
|
||||
? cur
|
||||
: prev;
|
||||
});
|
||||
this.relationManage.deleteRelationOfGraphicAndOtherType(
|
||||
this,
|
||||
JlSection.Type,
|
||||
);
|
||||
this.relationManage.addRelation(this, refSection);
|
||||
}
|
||||
}
|
||||
saveCommonRelations() {
|
||||
const refStation = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlStation.Type)
|
||||
.map((relation) => relation.getOtherGraphic<JlStation>(this).datas.id);
|
||||
if (refStation.length) {
|
||||
this.datas.refStation = refStation[0];
|
||||
}
|
||||
const refSection = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlSection.Type)
|
||||
.map((relation) => relation.getOtherGraphic<JlSection>(this).datas.id);
|
||||
if (refSection.length) {
|
||||
this.datas.refSection = refSection[0];
|
||||
}
|
||||
}
|
||||
loadCommonRelations() {
|
||||
if (this.datas.refStation) {
|
||||
this.relationManage.addRelation(
|
||||
this,
|
||||
this.queryStore.queryById<JlStation>(this.datas.refStation),
|
||||
);
|
||||
}
|
||||
if (this.datas.refSection) {
|
||||
this.relationManage.addRelation(
|
||||
this,
|
||||
this.queryStore.queryById<JlSection>(this.datas.refSection),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -59,15 +59,18 @@ export class THPlatform extends JlPlatform {
|
||||
if (this.states.upSkipstop || this.states.downSkipstop) {
|
||||
this.rectGraphic.stateFillColor = THConsts.trainJump;
|
||||
}
|
||||
/* const station = this.getGraphicApp().queryStore.queryByCodeAndType<Station>(
|
||||
this.states.rtuId > 9 ? '' + this.states.rtuId : '0' + this.states.rtuId,
|
||||
Station.Type
|
||||
); */
|
||||
const station =
|
||||
this.getGraphicApp().queryStore.queryByCodeAndType<THStation>(
|
||||
this.states.rtuId > 9
|
||||
? '' + this.states.rtuId
|
||||
: '0' + this.states.rtuId,
|
||||
THStation.Type,
|
||||
);
|
||||
const doorGraphic = this.doorCodeLozenge.doorGraphic;
|
||||
doorGraphic.stateFillColor = THConsts.doorGraphic.doorGreen;
|
||||
/* if (!!station?.states.ipRtuStusDown) {
|
||||
doorGraphic.stateFillColor = THConsts.doorGraphic.doorBlue;
|
||||
} */ if (this.states.psdCut) {
|
||||
if (!!station?.states.ipRtuStusDown) {
|
||||
doorGraphic.stateFillColor = THConsts.doorGraphic.doorBlue;
|
||||
} else if (this.states.psdCut) {
|
||||
doorGraphic.stateFillColor = THConsts.doorGraphic.doorRed;
|
||||
}
|
||||
super.draw();
|
||||
@ -137,68 +140,12 @@ export class THPlatform extends JlPlatform {
|
||||
}
|
||||
}
|
||||
buildRelation() {
|
||||
const stationas = this.queryStore.queryByType<THStation>(THStation.Type);
|
||||
for (let i = 0; i < stationas.length; i++) {
|
||||
const sP = stationas[i].localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
this.relationManage.addRelation(this, stationas[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
const sections = this.queryStore.queryByType<JlSection>(JlSection.Type);
|
||||
const minDistanceRefSections: JlSection[] = [];
|
||||
sections.forEach((section) => {
|
||||
const sP = section.localBoundsToCanvasPoints();
|
||||
if (this.x > sP[0].x && this.x < sP[1].x) {
|
||||
minDistanceRefSections.push(section);
|
||||
}
|
||||
});
|
||||
if (minDistanceRefSections) {
|
||||
const refSection = minDistanceRefSections.reduce((prev, cur) => {
|
||||
return distance2(
|
||||
prev.localToCanvasPoint(getRectangleCenter(prev.getLocalBounds())),
|
||||
this.position,
|
||||
) >
|
||||
distance2(
|
||||
cur.localToCanvasPoint(getRectangleCenter(cur.getLocalBounds())),
|
||||
this.position,
|
||||
)
|
||||
? cur
|
||||
: prev;
|
||||
});
|
||||
this.relationManage.deleteRelationOfGraphicAndOtherType(
|
||||
this,
|
||||
JlSection.Type,
|
||||
);
|
||||
this.relationManage.addRelation(this, refSection);
|
||||
}
|
||||
super.buildCommonRelation();
|
||||
}
|
||||
saveRelations() {
|
||||
const refStation = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, THStation.Type)
|
||||
.map((relation) => relation.getOtherGraphic<THStation>(this).datas.id);
|
||||
if (refStation.length) {
|
||||
this.datas.refStation = refStation[0];
|
||||
}
|
||||
const refSection = this.relationManage
|
||||
.getRelationsOfGraphicAndOtherType(this, JlSection.Type)
|
||||
.map((relation) => relation.getOtherGraphic<JlSection>(this).datas.id);
|
||||
if (refSection.length) {
|
||||
this.datas.refSection = refSection[0];
|
||||
}
|
||||
super.saveCommonRelations();
|
||||
}
|
||||
loadRelations() {
|
||||
if (this.datas.refStation) {
|
||||
this.relationManage.addRelation(
|
||||
this,
|
||||
this.queryStore.queryById<THStation>(this.datas.refStation),
|
||||
);
|
||||
}
|
||||
if (this.datas.refSection) {
|
||||
this.relationManage.addRelation(
|
||||
this,
|
||||
this.queryStore.queryById<JlSection>(this.datas.refSection),
|
||||
);
|
||||
}
|
||||
super.loadCommonRelations();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user