优化:避免修改窗洞出错

pull/2198/MERGE
ChenX 1 year ago
parent 428a2f525a
commit 6502891e54

@ -7,7 +7,8 @@ import { RoomHolePolyline } from "../../Entity/Wall/Hole/RoomHolePolyline";
import { RoomWallBase } from "../../Entity/Wall/RoomWallBase"; import { RoomWallBase } from "../../Entity/Wall/RoomWallBase";
import { RoomWallLine } from "../../Entity/Wall/RoomWallLine"; import { RoomWallLine } from "../../Entity/Wall/RoomWallLine";
import { CreateGetCurveParam, GetCurveParam, GetLineParam } from "../GetCurveParam"; import { CreateGetCurveParam, GetCurveParam, GetLineParam } from "../GetCurveParam";
import { FindBestRange, ParseWallRange } from "./RoomWallPlaceIHoleHelper"; import { InsertSortedIndex } from "../RangeUtils";
import { ParseWallRange } from "./RoomWallPlaceIHoleHelper";
/** /**
* 2 * 2
@ -38,7 +39,8 @@ export class RoomIHoleParseAndModify
let sparam = getParam.GetParamAtPoint(hole.Points[0]); let sparam = getParam.GetParamAtPoint(hole.Points[0]);
let eparam = getParam.GetParamAtPoint(hole.Points[1]); let eparam = getParam.GetParamAtPoint(hole.Points[1]);
let range = FindBestRange((sparam + eparam) / 2, ranges); //取中点 let index = InsertSortedIndex(ranges, (sparam + eparam) / 2, (v, range) => v - range[0] + 1e-5);
let range = ranges[index - 1] ?? ranges[0] ?? [0, 1];//保证永远都有范围,保证不会出错
let length = wall instanceof RoomWallLine ? (getParam as GetLineParam).Length : wall.Length; let length = wall instanceof RoomWallLine ? (getParam as GetLineParam).Length : wall.Length;
this._WallLength = length; this._WallLength = length;

Loading…
Cancel
Save