동면 정렬 로직 추가
This commit is contained in:
parent
3dd1053eff
commit
f9fb5b7b50
@ -77,7 +77,8 @@ export function useCircuitTrestle(executeEffect = false) {
|
|||||||
const getRoofSurfaceList = () => {
|
const getRoofSurfaceList = () => {
|
||||||
const roofSurfaceList = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
|
const roofSurfaceList = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
|
||||||
roofSurfaceList.sort((a, b) => a.left - b.left || b.top - a.top)
|
roofSurfaceList.sort((a, b) => a.left - b.left || b.top - a.top)
|
||||||
return roofSurfaceList
|
|
||||||
|
const result = roofSurfaceList
|
||||||
.map((obj) => {
|
.map((obj) => {
|
||||||
return {
|
return {
|
||||||
roofSurfaceId: obj.id,
|
roofSurfaceId: obj.id,
|
||||||
@ -97,6 +98,36 @@ export function useCircuitTrestle(executeEffect = false) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.filter((surface) => surface.moduleList.length > 0)
|
.filter((surface) => surface.moduleList.length > 0)
|
||||||
|
|
||||||
|
// result 배열에서 roofSurface 값을 기준으로 순서대로 정렬한다.
|
||||||
|
|
||||||
|
return groupSort(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
const groupSort = (arr) => {
|
||||||
|
const result = []
|
||||||
|
const seen = new Set() // (roofSurface + "|" + roofSurfaceIncl)
|
||||||
|
|
||||||
|
let remaining = [...arr]
|
||||||
|
|
||||||
|
while (remaining.length > 0) {
|
||||||
|
const { roofSurface, roofSurfaceIncl } = remaining[0]
|
||||||
|
const key = `${roofSurface}|${roofSurfaceIncl}`
|
||||||
|
|
||||||
|
// 해당 그룹 추출
|
||||||
|
const group = remaining.filter((item) => item.roofSurface === roofSurface && item.roofSurfaceIncl === roofSurfaceIncl)
|
||||||
|
|
||||||
|
// 이미 처리했는지 체크 후 저장
|
||||||
|
if (!seen.has(key)) {
|
||||||
|
result.push(...group)
|
||||||
|
seen.add(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
// remaining에서 제거
|
||||||
|
remaining = remaining.filter((item) => !(item.roofSurface === roofSurface && item.roofSurfaceIncl === roofSurfaceIncl))
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// 모듈 목록
|
// 모듈 목록
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user