Browse Source

link -> center

master
修宁 7 months ago
parent
commit
52bca1c3de
  1. 5
      src/model/WorldModelType.ts
  2. 9
      src/model/example1.js
  3. 10
      src/model/itemType/ItemTypeLine.ts
  4. 4
      src/model/itemType/Toolbox.ts
  5. 2
      src/model/itemType/ToolboxLine.ts

5
src/model/WorldModelType.ts

@ -130,11 +130,6 @@ export interface ItemJson {
*/ */
dt: { dt: {
/** /**
* 线(uuid), a='ln'
*/
link?: string[]
/**
* (uuid) * (uuid)
*/ */
center?: string[] center?: string[]

9
src/model/example1.js

@ -48,8 +48,7 @@ export default {
[0.25, 0.1, 0.25] // 缩放向量 scale [0.25, 0.1, 0.25] // 缩放向量 scale
], ],
dt: { // 用户数据, 可自定义, 一般用在 three.js 的 userData 中 dt: { // 用户数据, 可自定义, 一般用在 three.js 的 userData 中
link: ['p2'], // 用于 a='ln' 的测量线段, 关联的点对象(uuid) center: ['p2'], // 用于 a='ln' 的测量线段, 关联的点对象(uuid)
center: [], // 物流关联对象(uuid)
in: [], // 物流入方向关联的对象(uuid) in: [], // 物流入方向关联的对象(uuid)
out: [] // 物流出方向关联的对象(uuid) out: [] // 物流出方向关联的对象(uuid)
} }
@ -59,7 +58,7 @@ export default {
t: 'measure', a: 'ln', l: '测量2', c: '#ff0000', t: 'measure', a: 'ln', l: '测量2', c: '#ff0000',
tf: [[-9.0, 0, 3], [0, 0, 0], [0.25, 0.1, 0.25]], tf: [[-9.0, 0, 3], [0, 0, 0], [0.25, 0.1, 0.25]],
dt: { dt: {
link: ['p3', 'p4'] center: ['p3', 'p4']
} }
}, },
{ {
@ -67,7 +66,7 @@ export default {
t: 'measure', a: 'ln', l: '测量3', c: '#ff0000', t: 'measure', a: 'ln', l: '测量3', c: '#ff0000',
tf: [[-5.0, 0, 3], [0, 0, 0], [0.25, 0.1, 0.25]], tf: [[-5.0, 0, 3], [0, 0, 0], [0.25, 0.1, 0.25]],
dt: { dt: {
link: [] center: []
} }
}, },
{ {
@ -75,7 +74,7 @@ export default {
t: 'measure', a: 'ln', l: '测量3', c: '#ff0000', t: 'measure', a: 'ln', l: '测量3', c: '#ff0000',
tf: [[-9.0, 0, 8], [0, 0, 0], [0.25, 0.1, 0.25]], tf: [[-9.0, 0, 8], [0, 0, 0], [0.25, 0.1, 0.25]],
dt: { dt: {
link: [] center: []
} }
} }
] ]

10
src/model/itemType/ItemTypeLine.ts

@ -73,7 +73,7 @@ export default abstract class ItemTypeLine extends ItemType {
} }
/** /**
* link 线 * center 线
*/ */
afterAddScene(viewport: Viewport, scene: THREE.Scene, objects: THREE.Object3D[]) { afterAddScene(viewport: Viewport, scene: THREE.Scene, objects: THREE.Object3D[]) {
super.afterAddScene(viewport, scene, objects) super.afterAddScene(viewport, scene, objects)
@ -82,8 +82,8 @@ export default abstract class ItemTypeLine extends ItemType {
for (let i = 0; i < this.pointArray.length; i++) { for (let i = 0; i < this.pointArray.length; i++) {
const startPoint = this.pointArray[i] const startPoint = this.pointArray[i]
// 找到这个元素的 userData.link 数组 // 找到这个元素的 userData.center 数组
const linkArray: string[] = startPoint.userData.link || [] const linkArray: string[] = startPoint.userData.center || []
for (let j = 0; j < linkArray.length; j++) { for (let j = 0; j < linkArray.length; j++) {
const linkId = linkArray[j] const linkId = linkArray[j]
@ -179,7 +179,7 @@ export default abstract class ItemTypeLine extends ItemType {
} }
// 无论 a->b 还是 b->a 都需要收集 // 无论 a->b 还是 b->a 都需要收集
if (_.includes(targetObj.userData?.link, point.uuid) || _.includes(point.userData?.link, targetObj.uuid)) { if (_.includes(targetObj.userData?.center, point.uuid) || _.includes(point.userData?.center, targetObj.uuid)) {
relationPoints.add(targetObj) relationPoints.add(targetObj)
} }
}) })
@ -208,7 +208,7 @@ export default abstract class ItemTypeLine extends ItemType {
// 判断谁是起点,谁是终点 // 判断谁是起点,谁是终点
let startPoint: THREE.Object3D let startPoint: THREE.Object3D
let endPoint: THREE.Object3D let endPoint: THREE.Object3D
if (_.includes(targetPoint.userData?.link, this.dragPoint.uuid)) { if (_.includes(targetPoint.userData?.center, this.dragPoint.uuid)) {
startPoint = targetPoint startPoint = targetPoint
endPoint = this.dragPoint endPoint = this.dragPoint

4
src/model/itemType/Toolbox.ts

@ -257,7 +257,9 @@ export default abstract class Toolbox {
[defaultScale.x, defaultScale.y, defaultScale.z] [defaultScale.x, defaultScale.y, defaultScale.z]
], ],
dt: { dt: {
link: [] as string[] in: [] as string[],
out: [] as string[],
center: [] as string[]
} }
} as ItemJson } as ItemJson
const marker = this.itemType.createPoint(point, itemJson) const marker = this.itemType.createPoint(point, itemJson)

2
src/model/itemType/ToolboxLine.ts

@ -31,7 +31,7 @@ export default class ToolboxLine extends Toolbox {
afterAddPoint(startPoint: THREE.Object3D, point: THREE.Object3D) { afterAddPoint(startPoint: THREE.Object3D, point: THREE.Object3D) {
// 如果起始点存在,则将新点添加到起始点的链接中 // 如果起始点存在,则将新点添加到起始点的链接中
startPoint.userData.link.push(point.uuid) startPoint.userData.center.push(point.uuid)
this.itemType.createLine(this.viewport, this.viewport.scene, this.startPoint, point) this.itemType.createLine(this.viewport, this.viewport.scene, this.startPoint, point)
} }

Loading…
Cancel
Save