修复:网洞墙绘制错误

pull/1477/MERGE
ChenX 2 years ago
parent 2a3cd0db44
commit 212443af75

@ -437,6 +437,8 @@ export class RoomWallLine extends RoomWallBase
{
let start = equaln(hole.StartParam, 0) ? 0 : MathUtils.clamp(curveParam.GetParamAtPoint(thisParam.GetPointAtParam(hole.StartParam)), 0, 1);
let end = equaln(hole.EndParam, 1) ? 1 : MathUtils.clamp(curveParam.GetParamAtPoint(thisParam.GetPointAtParam(hole.EndParam)), 0, 1);
if (equaln(start, end, 1e-8)) continue;//重复的点造成了绘制错误
if (start > end) [start, end] = [end, start];
start = Math.max(0, start);
end = Math.min(1, end);
@ -496,9 +498,13 @@ export class RoomWallLine extends RoomWallBase
{
let start = equaln(hole.StartParam, 0) ? 0 : MathUtils.clamp(curveParam.GetParamAtPoint(thisParam.GetPointAtParam(hole.StartParam)), 0, 1);
let end = equaln(hole.EndParam, 1) ? 1 : MathUtils.clamp(curveParam.GetParamAtPoint(thisParam.GetPointAtParam(hole.EndParam)), 0, 1);
if (start === end) continue;
if (equaln(start, end, 1e-8)) continue;//重复的点造成了绘制错误
if (start > end) [start, end] = [end, start];
start = Math.max(0, start);
end = Math.min(1, end);
if (start >= end) continue;
let holeTape = new Tape(start, end, hole.Bottom, hole.Top);
let newTapes: Tape[] = [];

Loading…
Cancel
Save