|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
import * as THREE from 'three';
|
|
|
|
|
import { Box3, Geometry, Matrix4, Object3D, Vector2, Vector3 } from 'three';
|
|
|
|
|
import { CreateBoardUtil } from '../ApplicationServices/mesh/createBoard';
|
|
|
|
|
import { arrayLast } from '../Common/ArrayExt';
|
|
|
|
|
import { arrayLast, arrayRemoveDuplicateBySort } from '../Common/ArrayExt';
|
|
|
|
|
import { ColorMaterial } from '../Common/ColorPalette';
|
|
|
|
|
import { Vec2DTo3D, Vec3DTo2D, getDeterminantFor2V } from '../Common/CurveUtils';
|
|
|
|
|
import { matrixAlignCoordSys } from '../Common/Matrix4Utils';
|
|
|
|
@ -399,13 +399,19 @@ export class Polyline extends Curve
|
|
|
|
|
else
|
|
|
|
|
params = param;
|
|
|
|
|
|
|
|
|
|
//校验参数在曲线中
|
|
|
|
|
params = params.filter(p => this.ParamOnCurve(p));
|
|
|
|
|
//校验参数在曲线中,修正参数
|
|
|
|
|
params = params.filter(p => this.ParamOnCurve(p))
|
|
|
|
|
.map(a =>
|
|
|
|
|
{
|
|
|
|
|
if (equaln(a, Math.floor(a + 0.5), 1e-6))
|
|
|
|
|
return Math.floor(a + 0.5);
|
|
|
|
|
return a;
|
|
|
|
|
});
|
|
|
|
|
//排序
|
|
|
|
|
params.sort((a, b) => a - b);
|
|
|
|
|
//必须加入最后一个参数,保证切割后的曲线完整
|
|
|
|
|
params.push(this.EndParam);
|
|
|
|
|
params = [...new Set(params)];
|
|
|
|
|
arrayRemoveDuplicateBySort(params, (e1, e2) => equaln(e1, e2, 1e-6));
|
|
|
|
|
if (params.length === 0)
|
|
|
|
|
return [];
|
|
|
|
|
|
|
|
|
|