|
|
@ -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;
|
|
|
|