qcast-front/.claude/memory/project_over_move_red_helper_deferred.md

2.0 KiB

name description type
OVER 클램프 후 빨강 보조선 미해결 이슈 오버 클램핑 시 인접 baseLine 은 SHOULDER_ABSORBED 되지만 이동된 currentLine 의 빨강 eaveHelpLine 은 계속 그려지는 별건 이슈 (2026-04-24 연기) project

상태: 연기 (2026-04-24 대화에서 사용자가 "별건" 으로 분류, 당장 급하지 않음)

증상: OVER_MOVE_POLICY='clamp' 로 오버 입력이 평행 위치-EPS(0.5) 까지 잘려 들어갈 때, 시각적으로는 거의 평행인데 빨강 eaveHelpLine 연장선 이 여전히 그려진다. 사용자 체감 이물감.

원인 분석 (2026-04-24 조사 완료):

  • src/util/skeleton-utils.js:1453 getAddLine(newPStart, newPEnd, 'red') — eaveHelpLine 연장선. 이동된 wall.baseLine 과 원본 roofLine 사이 gap 을 시각화하는 용도. 이동량 > 0 이면 항상 그려짐.
  • src/util/skeleton-utils.js:1505 stroke: '#FF0000' — HIP 대각 extensionLine.
  • 클램프 후 인접 baseLine 은 planeSize=0.5 (< 1) → SHOULDER_ABSORBED 가 흡수. 하지만 currentLine 본인의 gap(이동량) 은 여전히 크기 때문에 1453 빨강선은 그려짐.

Why: 원래 이 빨강 연장선은 "평행하기 전까지 움직였을 때" 시각화 용도. 클램프 정책 상 '사용자 체감 평행 = 실제로는 EPS 직전' 이므로 시각적으로 모순. 사용자 피드백: "이 보조선은 평행하기전까지 움직였을때 그리는 것인데.."

How to apply: 월요일(2026-04-27) 이후 재개 시:

  • 수정 위치 후보: skeleton-utils.js:1453 호출 직전에 "currentLine 이 평행 한계에 EPS 이내로 근접" 조건 추가해서 스킵.
  • 판정 기준 후보: 인접 baseLine 의 planeSize < 1 (= SHOULDER_ABSORBED) 이면 이 currentLine 도 평행 도달로 간주, 빨강선 생략.
  • 주의: 일반 이동(정상 범위) 에서는 빨강선이 의도된 동작이므로 조건 범위를 정확히 좁혀야 함. feedback_no_touch_working_code.md 원칙에 따라 최소 지점만 수정.