fix(shape): 횡방향 단차 코핑을 실제 전열·후열 쪽에 나눈다
코핑 두 쪽(전열 상면 · 후열 상면)을 늘 축의 (−) 쪽 = 전열로 두어, 전열이 (+) 쪽에 있는 교각(P1, 산외교 P11)에서는 전열 블럭이 후열 상면에 묻히고 후열 블럭이 떠 있었다. 각 쪽을 그 열 받침의 평균 n 쪽에 둔다 (순서는 [전열, 후열] 유지). 기존 테스트가 틀린 쪽을 기대하던 것을 고치고, 전열이 어느 쪽이든 블럭이 아래 코핑 상면에 놓이는지 검사한다. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b84288c48a
commit
0fb39076b8
2 files changed
+29
-6
No files matched your search
@@ -404,9 +404,12 @@ export function buildPier(input: PierInput, ctx: PierContext = {}): PierModel {
|
||||
? (meanN(fRows) + meanN(bRows)) / 2
|
||||
: (meanN(frontPlaced) + meanN(backPlaced)) / 2;
|
||||
if (lateralStep) {
|
||||
// The front row may lie on either side of the axis (it depends on the IP1 → IP3 direction), so each part takes the
|
||||
// side of its own row; the order stays [front, back].
|
||||
const frontLow = (fRows.length && bRows.length ? meanN(fRows) - meanN(bRows) : meanN(frontPlaced) - meanN(backPlaced)) <= 0;
|
||||
copingParts.push(
|
||||
{ k, nFrom: -planHalfB, nTo: nStep, profile: shifted(outline(segments), base[k]) },
|
||||
{ k, nFrom: nStep, nTo: planHalfB, profile: shifted(outline(backSegments), base[k]) },
|
||||
{ k, nFrom: frontLow ? -planHalfB : nStep, nTo: frontLow ? nStep : planHalfB, profile: shifted(outline(segments), base[k]) },
|
||||
{ k, nFrom: frontLow ? nStep : -planHalfB, nTo: frontLow ? planHalfB : nStep, profile: shifted(outline(backSegments), base[k]) },
|
||||
);
|
||||
} else {
|
||||
copingParts.push({ k, nFrom: -planHalfB, nTo: planHalfB, profile: shifted(outline(segments), base[k]) });
|
||||
|
||||
Reference in new issue
Block a user