2. 외벽선그리기, 배치면그리기 에서 그리드, 흡착점 선택 불가 3. 이동, 복사 시 길이 줄어듬 4. 옵션 설정 닫을 때, 임의그리드,흡착점 선택 해제
29 lines
731 B
JavaScript
29 lines
731 B
JavaScript
import { useRecoilValue } from 'recoil'
|
|
import { canvasState } from '@/store/canvasAtom'
|
|
|
|
export function useObject() {
|
|
const canvas = useRecoilValue(canvasState)
|
|
|
|
const deleteObject = (obj) => {
|
|
canvas
|
|
?.getObjects()
|
|
.filter((item) => item.parent === obj || item.parentId === obj.id)
|
|
.forEach((item) => {
|
|
canvas.remove(item)
|
|
})
|
|
}
|
|
|
|
const handleSelectableObjects = (targetNames = [], bool) => {
|
|
if (!canvas) {
|
|
return
|
|
}
|
|
const selectableObjects = canvas.getObjects().filter((obj) => targetNames.includes(obj.name))
|
|
selectableObjects.forEach((obj) => {
|
|
obj.selectable = bool
|
|
})
|
|
canvas.renderAll()
|
|
}
|
|
|
|
return { deleteObject, handleSelectableObjects }
|
|
}
|