Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ed08696189 | ||
![]() |
79f0351ae8 | ||
![]() |
01cac616f5 | ||
![]() |
6ef1e8d8b0 | ||
![]() |
596ab9dba3 | ||
![]() |
2b6cb2fd72 | ||
![]() |
a6c14af39c | ||
![]() |
0e7a71f44d |
264
api.cjs.js
264
api.cjs.js
@@ -144,6 +144,7 @@ var RenderType;
|
|||||||
RenderType[RenderType["PlaceFace"] = 8] = "PlaceFace";
|
RenderType[RenderType["PlaceFace"] = 8] = "PlaceFace";
|
||||||
RenderType[RenderType["BigHoleFace"] = 81] = "BigHoleFace";
|
RenderType[RenderType["BigHoleFace"] = 81] = "BigHoleFace";
|
||||||
RenderType[RenderType["CustomNumber"] = 9] = "CustomNumber";
|
RenderType[RenderType["CustomNumber"] = 9] = "CustomNumber";
|
||||||
|
RenderType[RenderType["ModelGroove"] = 10] = "ModelGroove";
|
||||||
/******************************************** 在视口时的渲染模式 */
|
/******************************************** 在视口时的渲染模式 */
|
||||||
/**
|
/**
|
||||||
* 线框模式
|
* 线框模式
|
||||||
@@ -225,7 +226,8 @@ class IHostApplicationServices {
|
|||||||
checkSealType: "1",
|
checkSealType: "1",
|
||||||
sealMaxValue: 10,
|
sealMaxValue: 10,
|
||||||
sealValues: '',
|
sealValues: '',
|
||||||
hardwareExpressionFormattingAccuracy: 2, //复合实体表达式值格式化精度
|
hardwareExpressionFormattingAccuracy: 2,
|
||||||
|
partialSplitValueCanTakesEffect: false,
|
||||||
};
|
};
|
||||||
this.viewSize = {
|
this.viewSize = {
|
||||||
minViewHeight: 1e-3,
|
minViewHeight: 1e-3,
|
||||||
@@ -3159,7 +3161,7 @@ class ColorMaterial {
|
|||||||
this._BasicDoubleSideMaterialMap.set(color, mtl);
|
this._BasicDoubleSideMaterialMap.set(color, mtl);
|
||||||
return mtl;
|
return mtl;
|
||||||
}
|
}
|
||||||
static GetConceptualMaterial(color, side = three.FrontSide, enableTransparent = false, freeze = false) {
|
static GetConceptualMaterial(color, side = three.FrontSide, enableTransparent = false, freeze = false, opacity) {
|
||||||
if (freeze)
|
if (freeze)
|
||||||
color = 257;
|
color = 257;
|
||||||
let key = `${color},${side},${enableTransparent ? 1 : 0}`;
|
let key = `${color},${side},${enableTransparent ? 1 : 0}`;
|
||||||
@@ -3172,7 +3174,14 @@ class ColorMaterial {
|
|||||||
get: () => mtl.uniforms.opacity.value !== 1
|
get: () => mtl.uniforms.opacity.value !== 1
|
||||||
});
|
});
|
||||||
Object.defineProperty(mtl.uniforms.opacity, "value", {
|
Object.defineProperty(mtl.uniforms.opacity, "value", {
|
||||||
get: () => freeze ? 0.5 : HostApplicationServices.ConceptualOpacity
|
get: () => {
|
||||||
|
let conceptualOpacity = HostApplicationServices.ConceptualOpacity;
|
||||||
|
if (freeze)
|
||||||
|
conceptualOpacity = 0.5;
|
||||||
|
else if (opacity)
|
||||||
|
conceptualOpacity = opacity;
|
||||||
|
return conceptualOpacity;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this._ConceptualMaterial.set(key, mtl);
|
this._ConceptualMaterial.set(key, mtl);
|
||||||
@@ -6371,7 +6380,7 @@ class Contour {
|
|||||||
hasEqualCus = fastEqualCurve(cu, pl, COMBINE_FUZZ);
|
hasEqualCus = fastEqualCurve(cu, pl, COMBINE_FUZZ);
|
||||||
if (hasEqualCus) {
|
if (hasEqualCus) {
|
||||||
//方向相同
|
//方向相同
|
||||||
if (equalv3(cu.GetFirstDeriv(cu.MidParam).normalize(), pl.GetFirstDeriv(pl.MidParam).normalize(), 1e-3)
|
if (equalv3(cu.GetFirstDeriv(cu.MidParam).normalize(), pl.GetFirstDeriv(pl.MidParam).normalize(), 1e-2)
|
||||||
=== isEqualNormal) {
|
=== isEqualNormal) {
|
||||||
unionList.push(pl);
|
unionList.push(pl);
|
||||||
intersectionList.push(pl);
|
intersectionList.push(pl);
|
||||||
@@ -6715,13 +6724,28 @@ class CurveTreeNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var PolylineJoinType;
|
||||||
|
(function (PolylineJoinType) {
|
||||||
|
PolylineJoinType[PolylineJoinType["Square"] = 0] = "Square";
|
||||||
|
PolylineJoinType[PolylineJoinType["Round"] = 1] = "Round";
|
||||||
|
})(PolylineJoinType || (PolylineJoinType = {}));
|
||||||
class OffsetPolyline {
|
class OffsetPolyline {
|
||||||
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1 //对直角走刀不进行圆弧过度
|
/**
|
||||||
|
*
|
||||||
|
* @param _Polyline
|
||||||
|
* @param _OffsetDist
|
||||||
|
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
|
||||||
|
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
|
||||||
|
* @param [_JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
|
||||||
|
*/
|
||||||
|
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1, //对直角走刀不进行圆弧过度
|
||||||
|
_JoinType = PolylineJoinType.Round //仅在走刀路径时生效
|
||||||
) {
|
) {
|
||||||
this._Polyline = _Polyline;
|
this._Polyline = _Polyline;
|
||||||
this._OffsetDist = _OffsetDist;
|
this._OffsetDist = _OffsetDist;
|
||||||
this._ToolPath = _ToolPath;
|
this._ToolPath = _ToolPath;
|
||||||
this._OffsetDistSq = _OffsetDistSq;
|
this._OffsetDistSq = _OffsetDistSq;
|
||||||
|
this._JoinType = _JoinType;
|
||||||
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
||||||
}
|
}
|
||||||
Do() {
|
Do() {
|
||||||
@@ -6823,7 +6847,10 @@ class OffsetPolyline {
|
|||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
let distSq = iPts[0].distanceToSquared(refP);
|
let distSq = iPts[0].distanceToSquared(refP);
|
||||||
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
if (this._JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
||||||
|
else
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -6833,7 +6860,8 @@ class OffsetPolyline {
|
|||||||
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else //直线和圆弧 圆弧和圆弧
|
||||||
|
{
|
||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
||||||
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
||||||
@@ -6901,8 +6929,13 @@ class OffsetPolyline {
|
|||||||
else
|
else
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
if (this._JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
|
else {
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
|
}
|
||||||
|
}
|
||||||
let circle = this._Circles[curveResNext.index];
|
let circle = this._Circles[curveResNext.index];
|
||||||
if (circle)
|
if (circle)
|
||||||
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
||||||
@@ -7333,6 +7366,24 @@ class OffsetPolyline {
|
|||||||
let arc = new exports.Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
let arc = new exports.Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
||||||
return arc;
|
return arc;
|
||||||
}
|
}
|
||||||
|
CreateSquare(center, curveNow, curveNext, entTypeCode) {
|
||||||
|
const arc = this.CreateArc(center, curveNow.curve.EndPoint, curveNext.curve.StartPoint);
|
||||||
|
const centerPoint = arc.GetPointAtParam(0.5);
|
||||||
|
const tangentLine = new exports.Line(centerPoint, arc.GetFirstDeriv(0.5).add(centerPoint)); //切线
|
||||||
|
let ep, sp;
|
||||||
|
if (entTypeCode === 1) {
|
||||||
|
ep = tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth)[0]; //第一条线新的终点坐标
|
||||||
|
sp = centerPoint.multiplyScalar(2).sub(ep);
|
||||||
|
}
|
||||||
|
else // if (entTypeCode === 0)//全圆弧 直线和圆弧
|
||||||
|
{
|
||||||
|
ep = SelectNearP(tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth), center); //第一条线新的终点坐标
|
||||||
|
sp = SelectNearP(tangentLine.IntersectWith(curveNext.curve, IntersectOption.ExtendBoth), center);
|
||||||
|
}
|
||||||
|
curveNow.ep = ep;
|
||||||
|
curveNext.sp = sp;
|
||||||
|
return new exports.Line(ep, sp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function EntityEncode(c) {
|
function EntityEncode(c) {
|
||||||
if (c instanceof exports.Line)
|
if (c instanceof exports.Line)
|
||||||
@@ -7909,10 +7960,13 @@ exports.Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
GetParamAtDist(dist) {
|
GetParamAtDist(dist) {
|
||||||
if (equaln$1(dist, 0))
|
if (equaln$1(dist, 0))
|
||||||
return 0;
|
return 0;
|
||||||
let cus = this.Explode();
|
let cus = [];
|
||||||
for (let i = 0; i < cus.length; i++) {
|
for (let i = 0; i < this.EndParam; i++) {
|
||||||
let cu = cus[i];
|
let cu = this.GetCurveAtIndex(i);
|
||||||
let len = cu.Length;
|
let len = cu.Length;
|
||||||
|
if (len < 1e-6)
|
||||||
|
continue;
|
||||||
|
cus.push(cu);
|
||||||
if (dist <= len)
|
if (dist <= len)
|
||||||
return i + cu.GetParamAtDist(dist);
|
return i + cu.GetParamAtDist(dist);
|
||||||
else if (equaln$1(dist, len, 1e-8))
|
else if (equaln$1(dist, len, 1e-8))
|
||||||
@@ -8408,10 +8462,10 @@ exports.Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
cu.ColorIndex = this.ColorIndex;
|
cu.ColorIndex = this.ColorIndex;
|
||||||
return curves;
|
return curves;
|
||||||
}
|
}
|
||||||
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1) {
|
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1, joinType = PolylineJoinType.Round) {
|
||||||
if (equaln$1(offsetDist, 0))
|
if (equaln$1(offsetDist, 0))
|
||||||
return [];
|
return [];
|
||||||
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq);
|
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq, joinType);
|
||||||
return polyOffestUtil.Do();
|
return polyOffestUtil.Do();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -11830,7 +11884,7 @@ let CylinderHole = CylinderHole_1 = class CylinderHole extends Hole {
|
|||||||
GetObject3DByRenderType(renderType) {
|
GetObject3DByRenderType(renderType) {
|
||||||
if (renderType === RenderType.Wireframe)
|
if (renderType === RenderType.Wireframe)
|
||||||
return new three.LineSegments(this.EdgeGeometry, ColorMaterial.GetLineMaterial(this.ColorIndex));
|
return new three.LineSegments(this.EdgeGeometry, ColorMaterial.GetLineMaterial(this.ColorIndex));
|
||||||
else if (renderType === RenderType.CustomNumber)
|
else if (renderType === RenderType.CustomNumber || renderType === RenderType.ModelGroove)
|
||||||
return; //不绘制了
|
return; //不绘制了
|
||||||
// return new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true));
|
// return new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true));
|
||||||
else
|
else
|
||||||
@@ -11848,7 +11902,7 @@ let CylinderHole = CylinderHole_1 = class CylinderHole extends Hole {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let mesh = obj;
|
let mesh = obj;
|
||||||
if (type === RenderType.CustomNumber)
|
if (type === RenderType.CustomNumber || type === RenderType.ModelGroove)
|
||||||
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex, three.FrontSide, true);
|
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex, three.FrontSide, true);
|
||||||
else
|
else
|
||||||
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex);
|
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex);
|
||||||
@@ -13445,6 +13499,8 @@ Object.freeze(DefaultR2b2Option);
|
|||||||
matchType: ECompareType.Equal
|
matchType: ECompareType.Equal
|
||||||
});
|
});
|
||||||
const DefaultCommonPanelOption = {
|
const DefaultCommonPanelOption = {
|
||||||
|
version: 1,
|
||||||
|
orderMap: {},
|
||||||
orderType: EOrderType.ByUpdate,
|
orderType: EOrderType.ByUpdate,
|
||||||
};
|
};
|
||||||
Object.freeze(DefaultCommonPanelOption);
|
Object.freeze(DefaultCommonPanelOption);
|
||||||
@@ -13526,6 +13582,11 @@ const DefaultChangeColorByRoomOrCabinetOption = {
|
|||||||
accordRoomName: true
|
accordRoomName: true
|
||||||
};
|
};
|
||||||
Object.freeze(DefaultChangeColorByRoomOrCabinetOption);
|
Object.freeze(DefaultChangeColorByRoomOrCabinetOption);
|
||||||
|
const DefaultDoorRelatesInfoOption = {
|
||||||
|
version: 1,
|
||||||
|
hingeOption: []
|
||||||
|
};
|
||||||
|
Object.freeze(DefaultDoorRelatesInfoOption);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 使用轮廓和扫描路径构建扫描几何体,实现衣柜中的顶线或者地脚线之类的实体.
|
* 使用轮廓和扫描路径构建扫描几何体,实现衣柜中的顶线或者地脚线之类的实体.
|
||||||
@@ -17568,6 +17629,12 @@ let ExtrudeSolid = ExtrudeSolid_1 = class ExtrudeSolid extends Entity {
|
|||||||
else if (renderType === RenderType.Conceptual) {
|
else if (renderType === RenderType.Conceptual) {
|
||||||
return obj.add(new three.Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, three.FrontSide, true, this.Freeze)), new three.LineSegments(this.EdgeGeometry, ColorMaterial.GetConceptualEdgeMaterial()));
|
return obj.add(new three.Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, three.FrontSide, true, this.Freeze)), new three.LineSegments(this.EdgeGeometry, ColorMaterial.GetConceptualEdgeMaterial()));
|
||||||
}
|
}
|
||||||
|
else if (renderType === RenderType.ModelGroove) {
|
||||||
|
obj.add(
|
||||||
|
// new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(9, FrontSide, true, this.Freeze)),
|
||||||
|
new three.LineSegments(this.EdgeGeometry, ColorMaterial.GetConceptualEdgeMaterial()));
|
||||||
|
obj.add(this.GetModelGroove());
|
||||||
|
}
|
||||||
else if (renderType === RenderType.Physical) {
|
else if (renderType === RenderType.Physical) {
|
||||||
let mesh = obj;
|
let mesh = obj;
|
||||||
mesh.geometry = this.MeshGeometry;
|
mesh.geometry = this.MeshGeometry;
|
||||||
@@ -17608,6 +17675,26 @@ let ExtrudeSolid = ExtrudeSolid_1 = class ExtrudeSolid extends Entity {
|
|||||||
mesh.material = this.MeshMaterial;
|
mesh.material = this.MeshMaterial;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
GetModelGroove() {
|
||||||
|
const grooves = [];
|
||||||
|
for (const sp of this.__CacheSplitExtrudes ?? []) {
|
||||||
|
grooves.push(...sp.grooves);
|
||||||
|
}
|
||||||
|
const group = new three.Group();
|
||||||
|
for (const groove of grooves) {
|
||||||
|
const grooveClone = groove.Clone();
|
||||||
|
grooveClone.UpdateDrawGeometry();
|
||||||
|
const mtx = new three.Matrix4().premultiply(grooveClone.OCSNoClone).premultiply(this.OCSInv);
|
||||||
|
const edgeGeo = grooveClone.EdgeGeometry;
|
||||||
|
edgeGeo.applyMatrix4(mtx);
|
||||||
|
const line = new three.LineSegments(edgeGeo, ColorMaterial.GetLineMaterial(1, this.Freeze));
|
||||||
|
const meshGeo = grooveClone.MeshGeometry;
|
||||||
|
meshGeo.applyMatrix4(mtx);
|
||||||
|
const mesh = new three.Mesh(meshGeo, ColorMaterial.GetConceptualMaterial(1, three.FrontSide, true, this.Freeze, 0.6));
|
||||||
|
group.add(mesh, line);
|
||||||
|
}
|
||||||
|
return group;
|
||||||
|
}
|
||||||
UpdateJigMaterial(color = 8) {
|
UpdateJigMaterial(color = 8) {
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
@@ -17782,6 +17869,8 @@ let CompositeEntity = CompositeEntity_1 = class CompositeEntity extends Entity {
|
|||||||
}
|
}
|
||||||
UpdateDrawObject(renderType, obj) {
|
UpdateDrawObject(renderType, obj) {
|
||||||
Object3DRemoveAll(obj);
|
Object3DRemoveAll(obj);
|
||||||
|
if (renderType === RenderType.ModelGroove)
|
||||||
|
return;
|
||||||
for (let e of this.Entitys) {
|
for (let e of this.Entitys) {
|
||||||
e.IsEmbedEntity = true;
|
e.IsEmbedEntity = true;
|
||||||
// //内嵌实体在某些时候可能被清理,修复它
|
// //内嵌实体在某些时候可能被清理,修复它
|
||||||
@@ -18199,7 +18288,7 @@ function ConverArcToPtsBul(arc, hasEnd = false) {
|
|||||||
exports.Production = void 0;
|
exports.Production = void 0;
|
||||||
(function (Production) {
|
(function (Production) {
|
||||||
/**获取板件拆单数据 */
|
/**获取板件拆单数据 */
|
||||||
function GetBoardSplitOrderData(br) {
|
function GetBoardSplitOrderData(br, redundancyKnif = 0) {
|
||||||
let sealedData = GetSealedBoardContour(br);
|
let sealedData = GetSealedBoardContour(br);
|
||||||
if (!sealedData) {
|
if (!sealedData) {
|
||||||
ToasterShowEntityMsg({
|
ToasterShowEntityMsg({
|
||||||
@@ -18222,7 +18311,7 @@ exports.Production = void 0;
|
|||||||
let originOutlinePtsBul = ConverToPtsBul(orgContour);
|
let originOutlinePtsBul = ConverToPtsBul(orgContour);
|
||||||
originOutlinePtsBul.pts.pop();
|
originOutlinePtsBul.pts.pop();
|
||||||
originOutlinePtsBul.buls.pop();
|
originOutlinePtsBul.buls.pop();
|
||||||
let { modeling, sideModeling } = GetBoardModelingData(br, offsetTanslation);
|
let { modeling, sideModeling } = GetBoardModelingData(br, offsetTanslation, redundancyKnif);
|
||||||
let boardContour;
|
let boardContour;
|
||||||
if (GetSpiteSize(br))
|
if (GetSpiteSize(br))
|
||||||
boardContour = ConverToPtsBul(br.ContourCurve); //不分裂圆弧转点表
|
boardContour = ConverToPtsBul(br.ContourCurve); //不分裂圆弧转点表
|
||||||
@@ -18359,7 +18448,7 @@ exports.Production = void 0;
|
|||||||
* @param br
|
* @param br
|
||||||
* @param offsetTanslation
|
* @param offsetTanslation
|
||||||
*/
|
*/
|
||||||
function GetBoardModelingData(br, offsetTanslation) {
|
function GetBoardModelingData(br, offsetTanslation, redundancyKnif = 0) {
|
||||||
const tool = FeedingToolPath.GetInstance();
|
const tool = FeedingToolPath.GetInstance();
|
||||||
const tMtx = MoveMatrix(offsetTanslation.clone().negate());
|
const tMtx = MoveMatrix(offsetTanslation.clone().negate());
|
||||||
const getModelings = (ms, isSide) => {
|
const getModelings = (ms, isSide) => {
|
||||||
@@ -18370,7 +18459,7 @@ exports.Production = void 0;
|
|||||||
continue;
|
continue;
|
||||||
if (HostApplicationServices.chaidanOption.useDefaultRad)
|
if (HostApplicationServices.chaidanOption.useDefaultRad)
|
||||||
m.knifeRadius = HostApplicationServices.chaidanOption.radius;
|
m.knifeRadius = HostApplicationServices.chaidanOption.radius;
|
||||||
let paths = tool.GetModelFeedPath(br, m); //走刀路径
|
let paths = tool.GetModelFeedPath(br, m, redundancyKnif); //走刀路径
|
||||||
if (!isSide)
|
if (!isSide)
|
||||||
paths.forEach(path => path.ApplyMatrix(tMtx));
|
paths.forEach(path => path.ApplyMatrix(tMtx));
|
||||||
//走刀的ptsbuls
|
//走刀的ptsbuls
|
||||||
@@ -18408,19 +18497,23 @@ exports.Production = void 0;
|
|||||||
Production.GetBoardModelingData = GetBoardModelingData;
|
Production.GetBoardModelingData = GetBoardModelingData;
|
||||||
//获得拆单尺寸
|
//获得拆单尺寸
|
||||||
function GetSpiteSize(br) {
|
function GetSpiteSize(br) {
|
||||||
if (br.BoardProcessOption[EBoardKeyList.SpliteHeight]
|
let [spHeight, spWidth, spThickness] = [br.BoardProcessOption.spliteHeight, br.BoardProcessOption.spliteWidth, br.BoardProcessOption.spliteThickness];
|
||||||
&& br.BoardProcessOption[EBoardKeyList.SpliteWidth]
|
const isEffect = HostApplicationServices.chaidanOption.partialSplitValueCanTakesEffect;
|
||||||
&& br.BoardProcessOption[EBoardKeyList.SpliteThickness]) {
|
const param = { L: br.Height, W: br.Width, H: br.Thickness };
|
||||||
let param = { L: br.Height, W: br.Width, H: br.Thickness };
|
if (isEffect || (spHeight && spWidth && spThickness)) {
|
||||||
let spliteHeight = safeEval(br.BoardProcessOption.spliteHeight, param, "L");
|
spHeight = spHeight || br.Height.toString();
|
||||||
let spliteWidth = safeEval(br.BoardProcessOption.spliteWidth, param, "W");
|
spWidth = spWidth || br.Width.toString();
|
||||||
let spliteThickness = safeEval(br.BoardProcessOption.spliteThickness, param, "H");
|
spThickness = spThickness || br.Thickness.toString();
|
||||||
if (spliteHeight && spliteWidth && spliteThickness)
|
const spliteHeight = safeEval(spHeight, param, "L");
|
||||||
|
const spliteWidth = safeEval(spWidth, param, "W");
|
||||||
|
const spliteThickness = safeEval(spThickness, param, "H");
|
||||||
|
if (spliteHeight && spliteWidth && spliteThickness) {
|
||||||
return {
|
return {
|
||||||
spliteHeight,
|
spliteHeight,
|
||||||
spliteWidth,
|
spliteWidth,
|
||||||
spliteThickness
|
spliteThickness
|
||||||
};
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Production.GetSpiteSize = GetSpiteSize;
|
Production.GetSpiteSize = GetSpiteSize;
|
||||||
@@ -18942,7 +19035,7 @@ exports.Production = void 0;
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
Production.Get3DModeing = Get3DModeing;
|
Production.Get3DModeing = Get3DModeing;
|
||||||
function GetChaiDanFeedingPath(data) {
|
function GetChaiDanFeedingPath(data, redundancyKnif = 0) {
|
||||||
const { thickness, boardContour, dir, addLen, addWidth, addDepth, knifeRadius, brThickness } = data;
|
const { thickness, boardContour, dir, addLen, addWidth, addDepth, knifeRadius, brThickness } = data;
|
||||||
let brContour = Data2Polyline(boardContour);
|
let brContour = Data2Polyline(boardContour);
|
||||||
const tool = FeedingToolPath.GetInstance();
|
const tool = FeedingToolPath.GetInstance();
|
||||||
@@ -18953,7 +19046,7 @@ exports.Production = void 0;
|
|||||||
shape,
|
shape,
|
||||||
thickness,
|
thickness,
|
||||||
dir, knifeRadius, addLen, addWidth, addDepth
|
dir, knifeRadius, addLen, addWidth, addDepth
|
||||||
});
|
}, redundancyKnif);
|
||||||
return paths.map((c) => ConverToPtsBul(c, false));
|
return paths.map((c) => ConverToPtsBul(c, false));
|
||||||
}
|
}
|
||||||
Production.GetChaiDanFeedingPath = GetChaiDanFeedingPath;
|
Production.GetChaiDanFeedingPath = GetChaiDanFeedingPath;
|
||||||
@@ -19421,7 +19514,7 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
this._workerCalcedGeom = null; //worker计算后,暂时存入到这里
|
this._workerCalcedGeom = null; //worker计算后,暂时存入到这里
|
||||||
this._async2DPathIng = false;
|
this._async2DPathIng = false;
|
||||||
//偏移缓存
|
//偏移缓存
|
||||||
this._OffsetPathCache = new Map();
|
this.OffsetPathCache = new Map();
|
||||||
this.InitBoardData();
|
this.InitBoardData();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -20276,7 +20369,7 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
DisposeThreeObj(this._2DPathDrawObject);
|
DisposeThreeObj(this._2DPathDrawObject);
|
||||||
this._2DPathDrawObject = undefined;
|
this._2DPathDrawObject = undefined;
|
||||||
}
|
}
|
||||||
this._OffsetPathCache.clear();
|
this.OffsetPathCache.clear();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
||||||
@@ -20289,10 +20382,16 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
get Has2DPath() { return this._2DModelingList.length > 0; }
|
get Has2DPath() { return this._2DModelingList.length > 0; }
|
||||||
|
get Async2DPathing() { return this._async2DPathIng; }
|
||||||
GoodBye() {
|
GoodBye() {
|
||||||
super.GoodBye();
|
super.GoodBye();
|
||||||
TerminateCSGTask({ key: this });
|
TerminateCSGTask({ key: this });
|
||||||
}
|
}
|
||||||
|
async Load2DPathIng() {
|
||||||
|
return new Promise((res) => {
|
||||||
|
this.promise2DPath = res;
|
||||||
|
});
|
||||||
|
}
|
||||||
//分裂后重新将排钻实体设置给不同的实体
|
//分裂后重新将排钻实体设置给不同的实体
|
||||||
HandleSpliteEntitys(splitEntitys) {
|
HandleSpliteEntitys(splitEntitys) {
|
||||||
if (!splitEntitys.length)
|
if (!splitEntitys.length)
|
||||||
@@ -20415,24 +20514,6 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
let mesh = new three.Mesh(shapeGeom, ColorMaterial.GetBasicMaterialDoubleSide(this.PlaceColor));
|
let mesh = new three.Mesh(shapeGeom, ColorMaterial.GetBasicMaterialDoubleSide(this.PlaceColor));
|
||||||
return mesh;
|
return mesh;
|
||||||
}
|
}
|
||||||
GetOffsetPath(path, item) {
|
|
||||||
if (item.offset === 0) {
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
let cache = this._OffsetPathCache.get(path);
|
|
||||||
if (!cache) {
|
|
||||||
cache = {};
|
|
||||||
this._OffsetPathCache.set(path, cache);
|
|
||||||
}
|
|
||||||
let tempPath = cache[item.offset.toString()];
|
|
||||||
if (!tempPath) {
|
|
||||||
tempPath = path.GetOffsetCurves(item.offset)[0];
|
|
||||||
cache[item.offset.toString()] = tempPath;
|
|
||||||
}
|
|
||||||
return tempPath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* 根据板的信息修改绘制的实体
|
* 根据板的信息修改绘制的实体
|
||||||
* 1.非拆单板 灰色
|
* 1.非拆单板 灰色
|
||||||
@@ -20564,12 +20645,12 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
let pts = super.GetObjectSnapPoints(snapMode, pickPoint, lastPoint, viewXform, frustum);
|
let pts = super.GetObjectSnapPoints(snapMode, pickPoint, lastPoint, viewXform, frustum);
|
||||||
if (snapMode === ObjectSnapMode.End) {
|
if (snapMode === ObjectSnapMode.End) {
|
||||||
for (let vm of this._2DModelingList) {
|
for (let vm of this._2DModelingList) {
|
||||||
if (!this._OffsetPathCache.has(vm.path))
|
if (!this.OffsetPathCache.has(vm.path))
|
||||||
continue;
|
continue;
|
||||||
for (let item of vm.items) {
|
for (let item of vm.items) {
|
||||||
if (item.offset === 0)
|
if (item.offset === 0)
|
||||||
continue;
|
continue;
|
||||||
let paths = this._OffsetPathCache.get(vm.path);
|
let paths = this.OffsetPathCache.get(vm.path);
|
||||||
let polyline = paths[item.offset.toString()];
|
let polyline = paths[item.offset.toString()];
|
||||||
if (!polyline)
|
if (!polyline)
|
||||||
continue; //多段线可能偏移失败
|
continue; //多段线可能偏移失败
|
||||||
@@ -21374,15 +21455,17 @@ function OptimizeToolPath(offsetCus, originShape, rad) {
|
|||||||
else {
|
else {
|
||||||
let alMat = matrixAlignCoordSys(plList[i].OCS, firstPl.OCS);
|
let alMat = matrixAlignCoordSys(plList[i].OCS, firstPl.OCS);
|
||||||
let cuPtsBul = plList[i].PtsBuls;
|
let cuPtsBul = plList[i].PtsBuls;
|
||||||
for (let i = 0; i < cuPtsBul.pts.length; i++) {
|
for (let j = 0; j < cuPtsBul.pts.length; j++) {
|
||||||
//坐标系对齐
|
//坐标系对齐
|
||||||
let p = cuPtsBul.pts[i];
|
let p = cuPtsBul.pts[j];
|
||||||
p.copy(AsVector2(AsVector3(p).applyMatrix4(alMat)));
|
p.copy(AsVector2(AsVector3(p).applyMatrix4(alMat)));
|
||||||
firstPl.LineData.push({ pt: p, bul: cuPtsBul.buls[i] });
|
firstPl.LineData.push({ pt: p, bul: cuPtsBul.buls[j] });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result.push(firstPl);
|
result.push(firstPl);
|
||||||
|
for (let pl of result)
|
||||||
|
pl.RemoveRepeatPos(1e-3);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -21528,7 +21611,7 @@ class FeedingToolPath extends Singleton {
|
|||||||
* @param knifRadius 刀半径/偏移距离
|
* @param knifRadius 刀半径/偏移距离
|
||||||
* @param [isOut=true] 是否是最外轮廓,如果是,洞需要外偏移一个刀半径,多段线偏移保留不闭合轮廓
|
* @param [isOut=true] 是否是最外轮廓,如果是,洞需要外偏移一个刀半径,多段线偏移保留不闭合轮廓
|
||||||
*/
|
*/
|
||||||
HandleShape(shape, knifRadius, isOut) {
|
HandleShape(shape, knifRadius, isOut, redundancyKnif = 0) {
|
||||||
let outline = shape.Outline.Curve;
|
let outline = shape.Outline.Curve;
|
||||||
if (isOut)
|
if (isOut)
|
||||||
outline = outline.Clone();
|
outline = outline.Clone();
|
||||||
@@ -21555,8 +21638,9 @@ class FeedingToolPath extends Singleton {
|
|||||||
let offsetDist = 0;
|
let offsetDist = 0;
|
||||||
let rectInfo = IsRect(outline);
|
let rectInfo = IsRect(outline);
|
||||||
while (true) {
|
while (true) {
|
||||||
if ((!isOut || offsetDist >= knifRadius) && rectInfo)
|
if ((!isOut || offsetDist >= knifRadius) && rectInfo) {
|
||||||
offsetDist += knifRadius * 2;
|
offsetDist += knifRadius * 2 - redundancyKnif;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
offsetDist += knifRadius;
|
offsetDist += knifRadius;
|
||||||
//理论上最大的宽度为1220,所以2000已经是种仁慈.
|
//理论上最大的宽度为1220,所以2000已经是种仁慈.
|
||||||
@@ -21566,10 +21650,13 @@ class FeedingToolPath extends Singleton {
|
|||||||
let retCus = [];
|
let retCus = [];
|
||||||
let tempOffsetCus = GetOffsetCurves(outline, offsetDist * dir, rectInfo);
|
let tempOffsetCus = GetOffsetCurves(outline, offsetDist * dir, rectInfo);
|
||||||
retCus.push(...tempOffsetCus);
|
retCus.push(...tempOffsetCus);
|
||||||
//最后一次内偏移如果是矩形,需在偏移一个刀半径避免没切到中心
|
//最后一次内偏移如果是矩形
|
||||||
if (retCus.length === 0 && rectInfo && offsetDist > knifRadius) {
|
if (retCus.length === 0 && rectInfo && offsetDist > knifRadius) {
|
||||||
offsetDist -= knifRadius;
|
const rectMinLengthHalf = Math.min(rectInfo.size.x, rectInfo.size.y) / 2;
|
||||||
retCus.push(...GetOffsetCurves(outline, offsetDist * dir, rectInfo));
|
//如果最后一个矩形最小边区间一半小于刀半径减去冗余值的一半,则偏移到中心处切一次
|
||||||
|
if (!equaln$1(offsetDist, rectMinLengthHalf, 1e-5) && offsetDist - rectMinLengthHalf - 1e-5 < knifRadius - redundancyKnif / 2) {
|
||||||
|
retCus.push(...GetOffsetCurves(outline, rectMinLengthHalf * dir, rectInfo));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (retCus.length === 0)
|
if (retCus.length === 0)
|
||||||
break;
|
break;
|
||||||
@@ -21645,7 +21732,7 @@ class FeedingToolPath extends Singleton {
|
|||||||
return offsetCus;
|
return offsetCus;
|
||||||
}
|
}
|
||||||
/**用于测试走刀路径 */
|
/**用于测试走刀路径 */
|
||||||
TestCalcPath(br, isCd = false) {
|
TestCalcPath(br, isCd = false, rk = 0) {
|
||||||
let modelings = br.BoardModeling;
|
let modelings = br.BoardModeling;
|
||||||
let allModeling = GetModelingFromCustomDrill(br);
|
let allModeling = GetModelingFromCustomDrill(br);
|
||||||
modelings.push(...allModeling.modeling);
|
modelings.push(...allModeling.modeling);
|
||||||
@@ -21658,20 +21745,20 @@ class FeedingToolPath extends Singleton {
|
|||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
return this.CalcPath(modelings, br);
|
return this.CalcPath(modelings, br, rk);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 计算走刀路径
|
* 计算走刀路径
|
||||||
*/
|
*/
|
||||||
CalcPath(modelings, br) {
|
CalcPath(modelings, br, rk = 0) {
|
||||||
let cus = [];
|
let cus = [];
|
||||||
for (let m of modelings) {
|
for (let m of modelings) {
|
||||||
cus.push(...this.GetModelFeedPath(br, m));
|
cus.push(...this.GetModelFeedPath(br, m, rk));
|
||||||
}
|
}
|
||||||
return cus;
|
return cus;
|
||||||
}
|
}
|
||||||
//获取造型走刀
|
//获取造型走刀
|
||||||
GetModelFeedPath(br, modeling) {
|
GetModelFeedPath(br, modeling, redundancyKnif = 0) {
|
||||||
const brThickness = br.Thickness;
|
const brThickness = br.Thickness;
|
||||||
let cus = []; //返回走刀路径
|
let cus = []; //返回走刀路径
|
||||||
let { shape, thickness, knifeRadius, addLen, addWidth, addDepth } = modeling;
|
let { shape, thickness, knifeRadius, addLen, addWidth, addDepth } = modeling;
|
||||||
@@ -21706,7 +21793,7 @@ class FeedingToolPath extends Singleton {
|
|||||||
cus.push(...paths);
|
cus.push(...paths);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let offsetCus = this.HandleShape(shape, knifeRadius, true);
|
let offsetCus = this.HandleShape(shape, knifeRadius, true, redundancyKnif);
|
||||||
if (offsetCus.length > 1)
|
if (offsetCus.length > 1)
|
||||||
cus.push(...OptimizeToolPath(offsetCus, shape, knifeRadius));
|
cus.push(...OptimizeToolPath(offsetCus, shape, knifeRadius));
|
||||||
}
|
}
|
||||||
@@ -23021,10 +23108,10 @@ function GetMaxAreaFn(rects) {
|
|||||||
return Max(rects, (t1, t2) => t2[0] > t1[0]);
|
return Max(rects, (t1, t2) => t2[0] > t1[0]);
|
||||||
}
|
}
|
||||||
function GetMaxWidthFn(rects) {
|
function GetMaxWidthFn(rects) {
|
||||||
return Max(rects, (t1, t2) => t2[1] > t1[1]);
|
return Max(rects, (t1, t2) => t2[5] === t1[5] ? t2[6] > t1[6] : t2[5] > t1[5]);
|
||||||
}
|
}
|
||||||
function GetMaxHeightFn(rects) {
|
function GetMaxHeightFn(rects) {
|
||||||
return Max(rects, (t1, t2) => t2[2] > t1[2]);
|
return Max(rects, (t1, t2) => t2[6] === t1[6] ? t2[6] > t1[6] : t2[5] > t1[5]);
|
||||||
}
|
}
|
||||||
//最大内接矩形
|
//最大内接矩形
|
||||||
//1.分析盒子
|
//1.分析盒子
|
||||||
@@ -23053,7 +23140,7 @@ function GetMaxHeightFn(rects) {
|
|||||||
*
|
*
|
||||||
* //除了变量 也可以设置过滤函数
|
* //除了变量 也可以设置过滤函数
|
||||||
* //例如:
|
* //例如:
|
||||||
* lir.FilterRectFn = !(w,h)=> (w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
* lir.FilterRectFn = (w,h)=> !(w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
||||||
*
|
*
|
||||||
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
||||||
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
||||||
@@ -23205,7 +23292,7 @@ class LargestInteriorRectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//area maxXIndex maxYIndex xcount ycount
|
//area maxXIndex maxYIndex xcount ycount,width,height
|
||||||
let rects = [];
|
let rects = [];
|
||||||
for (let j = 0; j < n; j++) // 对于每一列,使用基于柱状图的方法
|
for (let j = 0; j < n; j++) // 对于每一列,使用基于柱状图的方法
|
||||||
{
|
{
|
||||||
@@ -23243,11 +23330,12 @@ class LargestInteriorRectangle {
|
|||||||
//面积小于最小允许面积
|
//面积小于最小允许面积
|
||||||
if (area < this.MinArea)
|
if (area < this.MinArea)
|
||||||
continue;
|
continue;
|
||||||
rects.push([area, down[i], j, xCount, yCount]);
|
rects.push([area, down[i], j, xCount, yCount, width, height]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (rects.length) {
|
// while (rects.length)
|
||||||
let maxIndex = Max(rects, (t1, t2) => t2[0] > t1[0]);
|
if (rects.length) {
|
||||||
|
let maxIndex = this.GetMaxRectIndexFn(rects);
|
||||||
let [area, maxXIndex, maxYIndex, xCount, yCount] = rects[maxIndex];
|
let [area, maxXIndex, maxYIndex, xCount, yCount] = rects[maxIndex];
|
||||||
let xMax = xs[maxXIndex];
|
let xMax = xs[maxXIndex];
|
||||||
let yMax = ys[maxYIndex + 1];
|
let yMax = ys[maxYIndex + 1];
|
||||||
@@ -23262,16 +23350,20 @@ class LargestInteriorRectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//如果有被标记的方块,则删除它
|
//如果有被标记的方块,则删除它
|
||||||
arrayRemoveIf(rects, rect => {
|
//某些情况不适合这个算法,移除了它,保证结果正确性
|
||||||
let [area, maxX, maxY, xCount, yCount] = rect;
|
// arrayRemoveIf(rects, rect =>
|
||||||
for (let i = 0; i < xCount; i++) {
|
// {
|
||||||
for (let j = 0; j < yCount; j++) {
|
// let [area, maxX, maxY, xCount, yCount] = rect;
|
||||||
if (!matrix[maxX - 1 - i][maxY - j])
|
// for (let i = 0; i < xCount; i++)
|
||||||
return true;
|
// {
|
||||||
}
|
// for (let j = 0; j < yCount; j++)
|
||||||
}
|
// {
|
||||||
return false;
|
// if (!matrix[maxX - 1 - i][maxY - j])
|
||||||
});
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let maxRects = [];
|
let maxRects = [];
|
||||||
@@ -23321,8 +23413,8 @@ function IsPointInPolygon(polyPts, pt) {
|
|||||||
// if (equalv2(sp, pt, 1e-5) || equalv2(ep, pt, 1e-5))//在起点或者终点
|
// if (equalv2(sp, pt, 1e-5) || equalv2(ep, pt, 1e-5))//在起点或者终点
|
||||||
// return false;
|
// return false;
|
||||||
//点位于线上面
|
//点位于线上面
|
||||||
if (pt.y > Math.max(sp.y, ep.y))
|
// if (pt.y > Math.max(sp.y, ep.y))
|
||||||
continue;
|
// continue;
|
||||||
//线垂直Y轴
|
//线垂直Y轴
|
||||||
let derX = ep.x - sp.x;
|
let derX = ep.x - sp.x;
|
||||||
if (equaln$1(derX, 0, 5e-6)) {
|
if (equaln$1(derX, 0, 5e-6)) {
|
||||||
|
File diff suppressed because one or more lines are too long
266
api.esm.js
266
api.esm.js
@@ -1,4 +1,4 @@
|
|||||||
import { Vector3, Matrix4, Box3, Color, FrontSide, MeshPhysicalMaterial, Object3D, MathUtils, Vector2 as Vector2$1, Quaternion, LineDashedMaterial, DoubleSide, MeshBasicMaterial, LineBasicMaterial, ShaderMaterial, BufferGeometry, Shape as Shape$1, ShapeGeometry, BufferAttribute, Line as Line$1, Plane, Line3, EllipseCurve, CatmullRomCurve3, Box2 as Box2$1, Path as Path$1, LineSegments, Mesh, CylinderBufferGeometry, Float32BufferAttribute, Geometry, InstancedInterleavedBuffer, InterleavedBufferAttribute, ShapeUtils, Face3, BoxBufferGeometry, ExtrudeGeometry, Euler } from 'three';
|
import { Vector3, Matrix4, Box3, Color, FrontSide, MeshPhysicalMaterial, Object3D, MathUtils, Vector2 as Vector2$1, Quaternion, LineDashedMaterial, DoubleSide, MeshBasicMaterial, LineBasicMaterial, ShaderMaterial, BufferGeometry, Shape as Shape$1, ShapeGeometry, BufferAttribute, Line as Line$1, Plane, Line3, EllipseCurve, CatmullRomCurve3, Box2 as Box2$1, Path as Path$1, LineSegments, Mesh, CylinderBufferGeometry, Float32BufferAttribute, Geometry, InstancedInterleavedBuffer, InterleavedBufferAttribute, ShapeUtils, Face3, BoxBufferGeometry, ExtrudeGeometry, Group, Euler } from 'three';
|
||||||
function iaop() { };
|
function iaop() { };
|
||||||
import { Line2 } from 'three/examples/jsm/lines/Line2';
|
import { Line2 } from 'three/examples/jsm/lines/Line2';
|
||||||
import { LineGeometry } from 'three/examples/jsm/lines/LineGeometry';
|
import { LineGeometry } from 'three/examples/jsm/lines/LineGeometry';
|
||||||
@@ -135,6 +135,7 @@ var RenderType;
|
|||||||
RenderType[RenderType["PlaceFace"] = 8] = "PlaceFace";
|
RenderType[RenderType["PlaceFace"] = 8] = "PlaceFace";
|
||||||
RenderType[RenderType["BigHoleFace"] = 81] = "BigHoleFace";
|
RenderType[RenderType["BigHoleFace"] = 81] = "BigHoleFace";
|
||||||
RenderType[RenderType["CustomNumber"] = 9] = "CustomNumber";
|
RenderType[RenderType["CustomNumber"] = 9] = "CustomNumber";
|
||||||
|
RenderType[RenderType["ModelGroove"] = 10] = "ModelGroove";
|
||||||
/******************************************** 在视口时的渲染模式 */
|
/******************************************** 在视口时的渲染模式 */
|
||||||
/**
|
/**
|
||||||
* 线框模式
|
* 线框模式
|
||||||
@@ -216,7 +217,8 @@ class IHostApplicationServices {
|
|||||||
checkSealType: "1",
|
checkSealType: "1",
|
||||||
sealMaxValue: 10,
|
sealMaxValue: 10,
|
||||||
sealValues: '',
|
sealValues: '',
|
||||||
hardwareExpressionFormattingAccuracy: 2, //复合实体表达式值格式化精度
|
hardwareExpressionFormattingAccuracy: 2,
|
||||||
|
partialSplitValueCanTakesEffect: false,
|
||||||
};
|
};
|
||||||
this.viewSize = {
|
this.viewSize = {
|
||||||
minViewHeight: 1e-3,
|
minViewHeight: 1e-3,
|
||||||
@@ -3150,7 +3152,7 @@ class ColorMaterial {
|
|||||||
this._BasicDoubleSideMaterialMap.set(color, mtl);
|
this._BasicDoubleSideMaterialMap.set(color, mtl);
|
||||||
return mtl;
|
return mtl;
|
||||||
}
|
}
|
||||||
static GetConceptualMaterial(color, side = FrontSide, enableTransparent = false, freeze = false) {
|
static GetConceptualMaterial(color, side = FrontSide, enableTransparent = false, freeze = false, opacity) {
|
||||||
if (freeze)
|
if (freeze)
|
||||||
color = 257;
|
color = 257;
|
||||||
let key = `${color},${side},${enableTransparent ? 1 : 0}`;
|
let key = `${color},${side},${enableTransparent ? 1 : 0}`;
|
||||||
@@ -3163,7 +3165,14 @@ class ColorMaterial {
|
|||||||
get: () => mtl.uniforms.opacity.value !== 1
|
get: () => mtl.uniforms.opacity.value !== 1
|
||||||
});
|
});
|
||||||
Object.defineProperty(mtl.uniforms.opacity, "value", {
|
Object.defineProperty(mtl.uniforms.opacity, "value", {
|
||||||
get: () => freeze ? 0.5 : HostApplicationServices.ConceptualOpacity
|
get: () => {
|
||||||
|
let conceptualOpacity = HostApplicationServices.ConceptualOpacity;
|
||||||
|
if (freeze)
|
||||||
|
conceptualOpacity = 0.5;
|
||||||
|
else if (opacity)
|
||||||
|
conceptualOpacity = opacity;
|
||||||
|
return conceptualOpacity;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this._ConceptualMaterial.set(key, mtl);
|
this._ConceptualMaterial.set(key, mtl);
|
||||||
@@ -6362,7 +6371,7 @@ class Contour {
|
|||||||
hasEqualCus = fastEqualCurve(cu, pl, COMBINE_FUZZ);
|
hasEqualCus = fastEqualCurve(cu, pl, COMBINE_FUZZ);
|
||||||
if (hasEqualCus) {
|
if (hasEqualCus) {
|
||||||
//方向相同
|
//方向相同
|
||||||
if (equalv3(cu.GetFirstDeriv(cu.MidParam).normalize(), pl.GetFirstDeriv(pl.MidParam).normalize(), 1e-3)
|
if (equalv3(cu.GetFirstDeriv(cu.MidParam).normalize(), pl.GetFirstDeriv(pl.MidParam).normalize(), 1e-2)
|
||||||
=== isEqualNormal) {
|
=== isEqualNormal) {
|
||||||
unionList.push(pl);
|
unionList.push(pl);
|
||||||
intersectionList.push(pl);
|
intersectionList.push(pl);
|
||||||
@@ -6706,13 +6715,28 @@ class CurveTreeNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var PolylineJoinType;
|
||||||
|
(function (PolylineJoinType) {
|
||||||
|
PolylineJoinType[PolylineJoinType["Square"] = 0] = "Square";
|
||||||
|
PolylineJoinType[PolylineJoinType["Round"] = 1] = "Round";
|
||||||
|
})(PolylineJoinType || (PolylineJoinType = {}));
|
||||||
class OffsetPolyline {
|
class OffsetPolyline {
|
||||||
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1 //对直角走刀不进行圆弧过度
|
/**
|
||||||
|
*
|
||||||
|
* @param _Polyline
|
||||||
|
* @param _OffsetDist
|
||||||
|
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
|
||||||
|
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
|
||||||
|
* @param [_JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
|
||||||
|
*/
|
||||||
|
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1, //对直角走刀不进行圆弧过度
|
||||||
|
_JoinType = PolylineJoinType.Round //仅在走刀路径时生效
|
||||||
) {
|
) {
|
||||||
this._Polyline = _Polyline;
|
this._Polyline = _Polyline;
|
||||||
this._OffsetDist = _OffsetDist;
|
this._OffsetDist = _OffsetDist;
|
||||||
this._ToolPath = _ToolPath;
|
this._ToolPath = _ToolPath;
|
||||||
this._OffsetDistSq = _OffsetDistSq;
|
this._OffsetDistSq = _OffsetDistSq;
|
||||||
|
this._JoinType = _JoinType;
|
||||||
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
|
||||||
}
|
}
|
||||||
Do() {
|
Do() {
|
||||||
@@ -6814,7 +6838,10 @@ class OffsetPolyline {
|
|||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
let distSq = iPts[0].distanceToSquared(refP);
|
let distSq = iPts[0].distanceToSquared(refP);
|
||||||
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
if (this._ToolPath && distSq > this._OffsetDistSq) {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
if (this._JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
|
||||||
|
else
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -6824,7 +6851,8 @@ class OffsetPolyline {
|
|||||||
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
// curveResNow.paddingCurve = [new Line(sp, ep)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else //直线和圆弧 圆弧和圆弧
|
||||||
|
{
|
||||||
let refP = this._Vertexs[curveResNext.index];
|
let refP = this._Vertexs[curveResNext.index];
|
||||||
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
|
||||||
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
|
||||||
@@ -6892,8 +6920,13 @@ class OffsetPolyline {
|
|||||||
else
|
else
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
if (this._JoinType === PolylineJoinType.Round)
|
||||||
|
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
|
||||||
|
else {
|
||||||
|
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
|
||||||
|
}
|
||||||
|
}
|
||||||
let circle = this._Circles[curveResNext.index];
|
let circle = this._Circles[curveResNext.index];
|
||||||
if (circle)
|
if (circle)
|
||||||
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
|
||||||
@@ -7324,6 +7357,24 @@ class OffsetPolyline {
|
|||||||
let arc = new Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
let arc = new Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
|
||||||
return arc;
|
return arc;
|
||||||
}
|
}
|
||||||
|
CreateSquare(center, curveNow, curveNext, entTypeCode) {
|
||||||
|
const arc = this.CreateArc(center, curveNow.curve.EndPoint, curveNext.curve.StartPoint);
|
||||||
|
const centerPoint = arc.GetPointAtParam(0.5);
|
||||||
|
const tangentLine = new Line(centerPoint, arc.GetFirstDeriv(0.5).add(centerPoint)); //切线
|
||||||
|
let ep, sp;
|
||||||
|
if (entTypeCode === 1) {
|
||||||
|
ep = tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth)[0]; //第一条线新的终点坐标
|
||||||
|
sp = centerPoint.multiplyScalar(2).sub(ep);
|
||||||
|
}
|
||||||
|
else // if (entTypeCode === 0)//全圆弧 直线和圆弧
|
||||||
|
{
|
||||||
|
ep = SelectNearP(tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth), center); //第一条线新的终点坐标
|
||||||
|
sp = SelectNearP(tangentLine.IntersectWith(curveNext.curve, IntersectOption.ExtendBoth), center);
|
||||||
|
}
|
||||||
|
curveNow.ep = ep;
|
||||||
|
curveNext.sp = sp;
|
||||||
|
return new Line(ep, sp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function EntityEncode(c) {
|
function EntityEncode(c) {
|
||||||
if (c instanceof Line)
|
if (c instanceof Line)
|
||||||
@@ -7900,10 +7951,13 @@ let Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
GetParamAtDist(dist) {
|
GetParamAtDist(dist) {
|
||||||
if (equaln$1(dist, 0))
|
if (equaln$1(dist, 0))
|
||||||
return 0;
|
return 0;
|
||||||
let cus = this.Explode();
|
let cus = [];
|
||||||
for (let i = 0; i < cus.length; i++) {
|
for (let i = 0; i < this.EndParam; i++) {
|
||||||
let cu = cus[i];
|
let cu = this.GetCurveAtIndex(i);
|
||||||
let len = cu.Length;
|
let len = cu.Length;
|
||||||
|
if (len < 1e-6)
|
||||||
|
continue;
|
||||||
|
cus.push(cu);
|
||||||
if (dist <= len)
|
if (dist <= len)
|
||||||
return i + cu.GetParamAtDist(dist);
|
return i + cu.GetParamAtDist(dist);
|
||||||
else if (equaln$1(dist, len, 1e-8))
|
else if (equaln$1(dist, len, 1e-8))
|
||||||
@@ -8399,10 +8453,10 @@ let Polyline = Polyline_1 = class Polyline extends Curve {
|
|||||||
cu.ColorIndex = this.ColorIndex;
|
cu.ColorIndex = this.ColorIndex;
|
||||||
return curves;
|
return curves;
|
||||||
}
|
}
|
||||||
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1) {
|
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1, joinType = PolylineJoinType.Round) {
|
||||||
if (equaln$1(offsetDist, 0))
|
if (equaln$1(offsetDist, 0))
|
||||||
return [];
|
return [];
|
||||||
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq);
|
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq, joinType);
|
||||||
return polyOffestUtil.Do();
|
return polyOffestUtil.Do();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -11821,7 +11875,7 @@ let CylinderHole = CylinderHole_1 = class CylinderHole extends Hole {
|
|||||||
GetObject3DByRenderType(renderType) {
|
GetObject3DByRenderType(renderType) {
|
||||||
if (renderType === RenderType.Wireframe)
|
if (renderType === RenderType.Wireframe)
|
||||||
return new LineSegments(this.EdgeGeometry, ColorMaterial.GetLineMaterial(this.ColorIndex));
|
return new LineSegments(this.EdgeGeometry, ColorMaterial.GetLineMaterial(this.ColorIndex));
|
||||||
else if (renderType === RenderType.CustomNumber)
|
else if (renderType === RenderType.CustomNumber || renderType === RenderType.ModelGroove)
|
||||||
return; //不绘制了
|
return; //不绘制了
|
||||||
// return new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true));
|
// return new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true));
|
||||||
else
|
else
|
||||||
@@ -11839,7 +11893,7 @@ let CylinderHole = CylinderHole_1 = class CylinderHole extends Hole {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let mesh = obj;
|
let mesh = obj;
|
||||||
if (type === RenderType.CustomNumber)
|
if (type === RenderType.CustomNumber || type === RenderType.ModelGroove)
|
||||||
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true);
|
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true);
|
||||||
else
|
else
|
||||||
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex);
|
mesh.material = ColorMaterial.GetConceptualMaterial(this.ColorIndex);
|
||||||
@@ -13436,6 +13490,8 @@ Object.freeze(DefaultR2b2Option);
|
|||||||
matchType: ECompareType.Equal
|
matchType: ECompareType.Equal
|
||||||
});
|
});
|
||||||
const DefaultCommonPanelOption = {
|
const DefaultCommonPanelOption = {
|
||||||
|
version: 1,
|
||||||
|
orderMap: {},
|
||||||
orderType: EOrderType.ByUpdate,
|
orderType: EOrderType.ByUpdate,
|
||||||
};
|
};
|
||||||
Object.freeze(DefaultCommonPanelOption);
|
Object.freeze(DefaultCommonPanelOption);
|
||||||
@@ -13517,6 +13573,11 @@ const DefaultChangeColorByRoomOrCabinetOption = {
|
|||||||
accordRoomName: true
|
accordRoomName: true
|
||||||
};
|
};
|
||||||
Object.freeze(DefaultChangeColorByRoomOrCabinetOption);
|
Object.freeze(DefaultChangeColorByRoomOrCabinetOption);
|
||||||
|
const DefaultDoorRelatesInfoOption = {
|
||||||
|
version: 1,
|
||||||
|
hingeOption: []
|
||||||
|
};
|
||||||
|
Object.freeze(DefaultDoorRelatesInfoOption);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 使用轮廓和扫描路径构建扫描几何体,实现衣柜中的顶线或者地脚线之类的实体.
|
* 使用轮廓和扫描路径构建扫描几何体,实现衣柜中的顶线或者地脚线之类的实体.
|
||||||
@@ -17559,6 +17620,12 @@ let ExtrudeSolid = ExtrudeSolid_1 = class ExtrudeSolid extends Entity {
|
|||||||
else if (renderType === RenderType.Conceptual) {
|
else if (renderType === RenderType.Conceptual) {
|
||||||
return obj.add(new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true, this.Freeze)), new LineSegments(this.EdgeGeometry, ColorMaterial.GetConceptualEdgeMaterial()));
|
return obj.add(new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(this.ColorIndex, FrontSide, true, this.Freeze)), new LineSegments(this.EdgeGeometry, ColorMaterial.GetConceptualEdgeMaterial()));
|
||||||
}
|
}
|
||||||
|
else if (renderType === RenderType.ModelGroove) {
|
||||||
|
obj.add(
|
||||||
|
// new Mesh(this.MeshGeometry, ColorMaterial.GetConceptualMaterial(9, FrontSide, true, this.Freeze)),
|
||||||
|
new LineSegments(this.EdgeGeometry, ColorMaterial.GetConceptualEdgeMaterial()));
|
||||||
|
obj.add(this.GetModelGroove());
|
||||||
|
}
|
||||||
else if (renderType === RenderType.Physical) {
|
else if (renderType === RenderType.Physical) {
|
||||||
let mesh = obj;
|
let mesh = obj;
|
||||||
mesh.geometry = this.MeshGeometry;
|
mesh.geometry = this.MeshGeometry;
|
||||||
@@ -17599,6 +17666,26 @@ let ExtrudeSolid = ExtrudeSolid_1 = class ExtrudeSolid extends Entity {
|
|||||||
mesh.material = this.MeshMaterial;
|
mesh.material = this.MeshMaterial;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
GetModelGroove() {
|
||||||
|
const grooves = [];
|
||||||
|
for (const sp of this.__CacheSplitExtrudes ?? []) {
|
||||||
|
grooves.push(...sp.grooves);
|
||||||
|
}
|
||||||
|
const group = new Group();
|
||||||
|
for (const groove of grooves) {
|
||||||
|
const grooveClone = groove.Clone();
|
||||||
|
grooveClone.UpdateDrawGeometry();
|
||||||
|
const mtx = new Matrix4().premultiply(grooveClone.OCSNoClone).premultiply(this.OCSInv);
|
||||||
|
const edgeGeo = grooveClone.EdgeGeometry;
|
||||||
|
edgeGeo.applyMatrix4(mtx);
|
||||||
|
const line = new LineSegments(edgeGeo, ColorMaterial.GetLineMaterial(1, this.Freeze));
|
||||||
|
const meshGeo = grooveClone.MeshGeometry;
|
||||||
|
meshGeo.applyMatrix4(mtx);
|
||||||
|
const mesh = new Mesh(meshGeo, ColorMaterial.GetConceptualMaterial(1, FrontSide, true, this.Freeze, 0.6));
|
||||||
|
group.add(mesh, line);
|
||||||
|
}
|
||||||
|
return group;
|
||||||
|
}
|
||||||
UpdateJigMaterial(color = 8) {
|
UpdateJigMaterial(color = 8) {
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
@@ -17773,6 +17860,8 @@ let CompositeEntity = CompositeEntity_1 = class CompositeEntity extends Entity {
|
|||||||
}
|
}
|
||||||
UpdateDrawObject(renderType, obj) {
|
UpdateDrawObject(renderType, obj) {
|
||||||
Object3DRemoveAll(obj);
|
Object3DRemoveAll(obj);
|
||||||
|
if (renderType === RenderType.ModelGroove)
|
||||||
|
return;
|
||||||
for (let e of this.Entitys) {
|
for (let e of this.Entitys) {
|
||||||
e.IsEmbedEntity = true;
|
e.IsEmbedEntity = true;
|
||||||
// //内嵌实体在某些时候可能被清理,修复它
|
// //内嵌实体在某些时候可能被清理,修复它
|
||||||
@@ -18190,7 +18279,7 @@ function ConverArcToPtsBul(arc, hasEnd = false) {
|
|||||||
var Production;
|
var Production;
|
||||||
(function (Production) {
|
(function (Production) {
|
||||||
/**获取板件拆单数据 */
|
/**获取板件拆单数据 */
|
||||||
function GetBoardSplitOrderData(br) {
|
function GetBoardSplitOrderData(br, redundancyKnif = 0) {
|
||||||
let sealedData = GetSealedBoardContour(br);
|
let sealedData = GetSealedBoardContour(br);
|
||||||
if (!sealedData) {
|
if (!sealedData) {
|
||||||
ToasterShowEntityMsg({
|
ToasterShowEntityMsg({
|
||||||
@@ -18213,7 +18302,7 @@ var Production;
|
|||||||
let originOutlinePtsBul = ConverToPtsBul(orgContour);
|
let originOutlinePtsBul = ConverToPtsBul(orgContour);
|
||||||
originOutlinePtsBul.pts.pop();
|
originOutlinePtsBul.pts.pop();
|
||||||
originOutlinePtsBul.buls.pop();
|
originOutlinePtsBul.buls.pop();
|
||||||
let { modeling, sideModeling } = GetBoardModelingData(br, offsetTanslation);
|
let { modeling, sideModeling } = GetBoardModelingData(br, offsetTanslation, redundancyKnif);
|
||||||
let boardContour;
|
let boardContour;
|
||||||
if (GetSpiteSize(br))
|
if (GetSpiteSize(br))
|
||||||
boardContour = ConverToPtsBul(br.ContourCurve); //不分裂圆弧转点表
|
boardContour = ConverToPtsBul(br.ContourCurve); //不分裂圆弧转点表
|
||||||
@@ -18350,7 +18439,7 @@ var Production;
|
|||||||
* @param br
|
* @param br
|
||||||
* @param offsetTanslation
|
* @param offsetTanslation
|
||||||
*/
|
*/
|
||||||
function GetBoardModelingData(br, offsetTanslation) {
|
function GetBoardModelingData(br, offsetTanslation, redundancyKnif = 0) {
|
||||||
const tool = FeedingToolPath.GetInstance();
|
const tool = FeedingToolPath.GetInstance();
|
||||||
const tMtx = MoveMatrix(offsetTanslation.clone().negate());
|
const tMtx = MoveMatrix(offsetTanslation.clone().negate());
|
||||||
const getModelings = (ms, isSide) => {
|
const getModelings = (ms, isSide) => {
|
||||||
@@ -18361,7 +18450,7 @@ var Production;
|
|||||||
continue;
|
continue;
|
||||||
if (HostApplicationServices.chaidanOption.useDefaultRad)
|
if (HostApplicationServices.chaidanOption.useDefaultRad)
|
||||||
m.knifeRadius = HostApplicationServices.chaidanOption.radius;
|
m.knifeRadius = HostApplicationServices.chaidanOption.radius;
|
||||||
let paths = tool.GetModelFeedPath(br, m); //走刀路径
|
let paths = tool.GetModelFeedPath(br, m, redundancyKnif); //走刀路径
|
||||||
if (!isSide)
|
if (!isSide)
|
||||||
paths.forEach(path => path.ApplyMatrix(tMtx));
|
paths.forEach(path => path.ApplyMatrix(tMtx));
|
||||||
//走刀的ptsbuls
|
//走刀的ptsbuls
|
||||||
@@ -18399,19 +18488,23 @@ var Production;
|
|||||||
Production.GetBoardModelingData = GetBoardModelingData;
|
Production.GetBoardModelingData = GetBoardModelingData;
|
||||||
//获得拆单尺寸
|
//获得拆单尺寸
|
||||||
function GetSpiteSize(br) {
|
function GetSpiteSize(br) {
|
||||||
if (br.BoardProcessOption[EBoardKeyList.SpliteHeight]
|
let [spHeight, spWidth, spThickness] = [br.BoardProcessOption.spliteHeight, br.BoardProcessOption.spliteWidth, br.BoardProcessOption.spliteThickness];
|
||||||
&& br.BoardProcessOption[EBoardKeyList.SpliteWidth]
|
const isEffect = HostApplicationServices.chaidanOption.partialSplitValueCanTakesEffect;
|
||||||
&& br.BoardProcessOption[EBoardKeyList.SpliteThickness]) {
|
const param = { L: br.Height, W: br.Width, H: br.Thickness };
|
||||||
let param = { L: br.Height, W: br.Width, H: br.Thickness };
|
if (isEffect || (spHeight && spWidth && spThickness)) {
|
||||||
let spliteHeight = safeEval(br.BoardProcessOption.spliteHeight, param, "L");
|
spHeight = spHeight || br.Height.toString();
|
||||||
let spliteWidth = safeEval(br.BoardProcessOption.spliteWidth, param, "W");
|
spWidth = spWidth || br.Width.toString();
|
||||||
let spliteThickness = safeEval(br.BoardProcessOption.spliteThickness, param, "H");
|
spThickness = spThickness || br.Thickness.toString();
|
||||||
if (spliteHeight && spliteWidth && spliteThickness)
|
const spliteHeight = safeEval(spHeight, param, "L");
|
||||||
|
const spliteWidth = safeEval(spWidth, param, "W");
|
||||||
|
const spliteThickness = safeEval(spThickness, param, "H");
|
||||||
|
if (spliteHeight && spliteWidth && spliteThickness) {
|
||||||
return {
|
return {
|
||||||
spliteHeight,
|
spliteHeight,
|
||||||
spliteWidth,
|
spliteWidth,
|
||||||
spliteThickness
|
spliteThickness
|
||||||
};
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Production.GetSpiteSize = GetSpiteSize;
|
Production.GetSpiteSize = GetSpiteSize;
|
||||||
@@ -18933,7 +19026,7 @@ var Production;
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
Production.Get3DModeing = Get3DModeing;
|
Production.Get3DModeing = Get3DModeing;
|
||||||
function GetChaiDanFeedingPath(data) {
|
function GetChaiDanFeedingPath(data, redundancyKnif = 0) {
|
||||||
const { thickness, boardContour, dir, addLen, addWidth, addDepth, knifeRadius, brThickness } = data;
|
const { thickness, boardContour, dir, addLen, addWidth, addDepth, knifeRadius, brThickness } = data;
|
||||||
let brContour = Data2Polyline(boardContour);
|
let brContour = Data2Polyline(boardContour);
|
||||||
const tool = FeedingToolPath.GetInstance();
|
const tool = FeedingToolPath.GetInstance();
|
||||||
@@ -18944,7 +19037,7 @@ var Production;
|
|||||||
shape,
|
shape,
|
||||||
thickness,
|
thickness,
|
||||||
dir, knifeRadius, addLen, addWidth, addDepth
|
dir, knifeRadius, addLen, addWidth, addDepth
|
||||||
});
|
}, redundancyKnif);
|
||||||
return paths.map((c) => ConverToPtsBul(c, false));
|
return paths.map((c) => ConverToPtsBul(c, false));
|
||||||
}
|
}
|
||||||
Production.GetChaiDanFeedingPath = GetChaiDanFeedingPath;
|
Production.GetChaiDanFeedingPath = GetChaiDanFeedingPath;
|
||||||
@@ -19412,7 +19505,7 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
this._workerCalcedGeom = null; //worker计算后,暂时存入到这里
|
this._workerCalcedGeom = null; //worker计算后,暂时存入到这里
|
||||||
this._async2DPathIng = false;
|
this._async2DPathIng = false;
|
||||||
//偏移缓存
|
//偏移缓存
|
||||||
this._OffsetPathCache = new Map();
|
this.OffsetPathCache = new Map();
|
||||||
this.InitBoardData();
|
this.InitBoardData();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -20267,7 +20360,7 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
DisposeThreeObj(this._2DPathDrawObject);
|
DisposeThreeObj(this._2DPathDrawObject);
|
||||||
this._2DPathDrawObject = undefined;
|
this._2DPathDrawObject = undefined;
|
||||||
}
|
}
|
||||||
this._OffsetPathCache.clear();
|
this.OffsetPathCache.clear();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
||||||
@@ -20280,10 +20373,16 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
get Has2DPath() { return this._2DModelingList.length > 0; }
|
get Has2DPath() { return this._2DModelingList.length > 0; }
|
||||||
|
get Async2DPathing() { return this._async2DPathIng; }
|
||||||
GoodBye() {
|
GoodBye() {
|
||||||
super.GoodBye();
|
super.GoodBye();
|
||||||
TerminateCSGTask({ key: this });
|
TerminateCSGTask({ key: this });
|
||||||
}
|
}
|
||||||
|
async Load2DPathIng() {
|
||||||
|
return new Promise((res) => {
|
||||||
|
this.promise2DPath = res;
|
||||||
|
});
|
||||||
|
}
|
||||||
//分裂后重新将排钻实体设置给不同的实体
|
//分裂后重新将排钻实体设置给不同的实体
|
||||||
HandleSpliteEntitys(splitEntitys) {
|
HandleSpliteEntitys(splitEntitys) {
|
||||||
if (!splitEntitys.length)
|
if (!splitEntitys.length)
|
||||||
@@ -20406,24 +20505,6 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
let mesh = new Mesh(shapeGeom, ColorMaterial.GetBasicMaterialDoubleSide(this.PlaceColor));
|
let mesh = new Mesh(shapeGeom, ColorMaterial.GetBasicMaterialDoubleSide(this.PlaceColor));
|
||||||
return mesh;
|
return mesh;
|
||||||
}
|
}
|
||||||
GetOffsetPath(path, item) {
|
|
||||||
if (item.offset === 0) {
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
let cache = this._OffsetPathCache.get(path);
|
|
||||||
if (!cache) {
|
|
||||||
cache = {};
|
|
||||||
this._OffsetPathCache.set(path, cache);
|
|
||||||
}
|
|
||||||
let tempPath = cache[item.offset.toString()];
|
|
||||||
if (!tempPath) {
|
|
||||||
tempPath = path.GetOffsetCurves(item.offset)[0];
|
|
||||||
cache[item.offset.toString()] = tempPath;
|
|
||||||
}
|
|
||||||
return tempPath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* 根据板的信息修改绘制的实体
|
* 根据板的信息修改绘制的实体
|
||||||
* 1.非拆单板 灰色
|
* 1.非拆单板 灰色
|
||||||
@@ -20555,12 +20636,12 @@ let Board = Board_1 = class Board extends ExtrudeSolid {
|
|||||||
let pts = super.GetObjectSnapPoints(snapMode, pickPoint, lastPoint, viewXform, frustum);
|
let pts = super.GetObjectSnapPoints(snapMode, pickPoint, lastPoint, viewXform, frustum);
|
||||||
if (snapMode === ObjectSnapMode.End) {
|
if (snapMode === ObjectSnapMode.End) {
|
||||||
for (let vm of this._2DModelingList) {
|
for (let vm of this._2DModelingList) {
|
||||||
if (!this._OffsetPathCache.has(vm.path))
|
if (!this.OffsetPathCache.has(vm.path))
|
||||||
continue;
|
continue;
|
||||||
for (let item of vm.items) {
|
for (let item of vm.items) {
|
||||||
if (item.offset === 0)
|
if (item.offset === 0)
|
||||||
continue;
|
continue;
|
||||||
let paths = this._OffsetPathCache.get(vm.path);
|
let paths = this.OffsetPathCache.get(vm.path);
|
||||||
let polyline = paths[item.offset.toString()];
|
let polyline = paths[item.offset.toString()];
|
||||||
if (!polyline)
|
if (!polyline)
|
||||||
continue; //多段线可能偏移失败
|
continue; //多段线可能偏移失败
|
||||||
@@ -21365,15 +21446,17 @@ function OptimizeToolPath(offsetCus, originShape, rad) {
|
|||||||
else {
|
else {
|
||||||
let alMat = matrixAlignCoordSys(plList[i].OCS, firstPl.OCS);
|
let alMat = matrixAlignCoordSys(plList[i].OCS, firstPl.OCS);
|
||||||
let cuPtsBul = plList[i].PtsBuls;
|
let cuPtsBul = plList[i].PtsBuls;
|
||||||
for (let i = 0; i < cuPtsBul.pts.length; i++) {
|
for (let j = 0; j < cuPtsBul.pts.length; j++) {
|
||||||
//坐标系对齐
|
//坐标系对齐
|
||||||
let p = cuPtsBul.pts[i];
|
let p = cuPtsBul.pts[j];
|
||||||
p.copy(AsVector2(AsVector3(p).applyMatrix4(alMat)));
|
p.copy(AsVector2(AsVector3(p).applyMatrix4(alMat)));
|
||||||
firstPl.LineData.push({ pt: p, bul: cuPtsBul.buls[i] });
|
firstPl.LineData.push({ pt: p, bul: cuPtsBul.buls[j] });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result.push(firstPl);
|
result.push(firstPl);
|
||||||
|
for (let pl of result)
|
||||||
|
pl.RemoveRepeatPos(1e-3);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -21519,7 +21602,7 @@ class FeedingToolPath extends Singleton {
|
|||||||
* @param knifRadius 刀半径/偏移距离
|
* @param knifRadius 刀半径/偏移距离
|
||||||
* @param [isOut=true] 是否是最外轮廓,如果是,洞需要外偏移一个刀半径,多段线偏移保留不闭合轮廓
|
* @param [isOut=true] 是否是最外轮廓,如果是,洞需要外偏移一个刀半径,多段线偏移保留不闭合轮廓
|
||||||
*/
|
*/
|
||||||
HandleShape(shape, knifRadius, isOut) {
|
HandleShape(shape, knifRadius, isOut, redundancyKnif = 0) {
|
||||||
let outline = shape.Outline.Curve;
|
let outline = shape.Outline.Curve;
|
||||||
if (isOut)
|
if (isOut)
|
||||||
outline = outline.Clone();
|
outline = outline.Clone();
|
||||||
@@ -21546,8 +21629,9 @@ class FeedingToolPath extends Singleton {
|
|||||||
let offsetDist = 0;
|
let offsetDist = 0;
|
||||||
let rectInfo = IsRect(outline);
|
let rectInfo = IsRect(outline);
|
||||||
while (true) {
|
while (true) {
|
||||||
if ((!isOut || offsetDist >= knifRadius) && rectInfo)
|
if ((!isOut || offsetDist >= knifRadius) && rectInfo) {
|
||||||
offsetDist += knifRadius * 2;
|
offsetDist += knifRadius * 2 - redundancyKnif;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
offsetDist += knifRadius;
|
offsetDist += knifRadius;
|
||||||
//理论上最大的宽度为1220,所以2000已经是种仁慈.
|
//理论上最大的宽度为1220,所以2000已经是种仁慈.
|
||||||
@@ -21557,10 +21641,13 @@ class FeedingToolPath extends Singleton {
|
|||||||
let retCus = [];
|
let retCus = [];
|
||||||
let tempOffsetCus = GetOffsetCurves(outline, offsetDist * dir, rectInfo);
|
let tempOffsetCus = GetOffsetCurves(outline, offsetDist * dir, rectInfo);
|
||||||
retCus.push(...tempOffsetCus);
|
retCus.push(...tempOffsetCus);
|
||||||
//最后一次内偏移如果是矩形,需在偏移一个刀半径避免没切到中心
|
//最后一次内偏移如果是矩形
|
||||||
if (retCus.length === 0 && rectInfo && offsetDist > knifRadius) {
|
if (retCus.length === 0 && rectInfo && offsetDist > knifRadius) {
|
||||||
offsetDist -= knifRadius;
|
const rectMinLengthHalf = Math.min(rectInfo.size.x, rectInfo.size.y) / 2;
|
||||||
retCus.push(...GetOffsetCurves(outline, offsetDist * dir, rectInfo));
|
//如果最后一个矩形最小边区间一半小于刀半径减去冗余值的一半,则偏移到中心处切一次
|
||||||
|
if (!equaln$1(offsetDist, rectMinLengthHalf, 1e-5) && offsetDist - rectMinLengthHalf - 1e-5 < knifRadius - redundancyKnif / 2) {
|
||||||
|
retCus.push(...GetOffsetCurves(outline, rectMinLengthHalf * dir, rectInfo));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (retCus.length === 0)
|
if (retCus.length === 0)
|
||||||
break;
|
break;
|
||||||
@@ -21636,7 +21723,7 @@ class FeedingToolPath extends Singleton {
|
|||||||
return offsetCus;
|
return offsetCus;
|
||||||
}
|
}
|
||||||
/**用于测试走刀路径 */
|
/**用于测试走刀路径 */
|
||||||
TestCalcPath(br, isCd = false) {
|
TestCalcPath(br, isCd = false, rk = 0) {
|
||||||
let modelings = br.BoardModeling;
|
let modelings = br.BoardModeling;
|
||||||
let allModeling = GetModelingFromCustomDrill(br);
|
let allModeling = GetModelingFromCustomDrill(br);
|
||||||
modelings.push(...allModeling.modeling);
|
modelings.push(...allModeling.modeling);
|
||||||
@@ -21649,20 +21736,20 @@ class FeedingToolPath extends Singleton {
|
|||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
return this.CalcPath(modelings, br);
|
return this.CalcPath(modelings, br, rk);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 计算走刀路径
|
* 计算走刀路径
|
||||||
*/
|
*/
|
||||||
CalcPath(modelings, br) {
|
CalcPath(modelings, br, rk = 0) {
|
||||||
let cus = [];
|
let cus = [];
|
||||||
for (let m of modelings) {
|
for (let m of modelings) {
|
||||||
cus.push(...this.GetModelFeedPath(br, m));
|
cus.push(...this.GetModelFeedPath(br, m, rk));
|
||||||
}
|
}
|
||||||
return cus;
|
return cus;
|
||||||
}
|
}
|
||||||
//获取造型走刀
|
//获取造型走刀
|
||||||
GetModelFeedPath(br, modeling) {
|
GetModelFeedPath(br, modeling, redundancyKnif = 0) {
|
||||||
const brThickness = br.Thickness;
|
const brThickness = br.Thickness;
|
||||||
let cus = []; //返回走刀路径
|
let cus = []; //返回走刀路径
|
||||||
let { shape, thickness, knifeRadius, addLen, addWidth, addDepth } = modeling;
|
let { shape, thickness, knifeRadius, addLen, addWidth, addDepth } = modeling;
|
||||||
@@ -21697,7 +21784,7 @@ class FeedingToolPath extends Singleton {
|
|||||||
cus.push(...paths);
|
cus.push(...paths);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let offsetCus = this.HandleShape(shape, knifeRadius, true);
|
let offsetCus = this.HandleShape(shape, knifeRadius, true, redundancyKnif);
|
||||||
if (offsetCus.length > 1)
|
if (offsetCus.length > 1)
|
||||||
cus.push(...OptimizeToolPath(offsetCus, shape, knifeRadius));
|
cus.push(...OptimizeToolPath(offsetCus, shape, knifeRadius));
|
||||||
}
|
}
|
||||||
@@ -23012,10 +23099,10 @@ function GetMaxAreaFn(rects) {
|
|||||||
return Max(rects, (t1, t2) => t2[0] > t1[0]);
|
return Max(rects, (t1, t2) => t2[0] > t1[0]);
|
||||||
}
|
}
|
||||||
function GetMaxWidthFn(rects) {
|
function GetMaxWidthFn(rects) {
|
||||||
return Max(rects, (t1, t2) => t2[1] > t1[1]);
|
return Max(rects, (t1, t2) => t2[5] === t1[5] ? t2[6] > t1[6] : t2[5] > t1[5]);
|
||||||
}
|
}
|
||||||
function GetMaxHeightFn(rects) {
|
function GetMaxHeightFn(rects) {
|
||||||
return Max(rects, (t1, t2) => t2[2] > t1[2]);
|
return Max(rects, (t1, t2) => t2[6] === t1[6] ? t2[6] > t1[6] : t2[5] > t1[5]);
|
||||||
}
|
}
|
||||||
//最大内接矩形
|
//最大内接矩形
|
||||||
//1.分析盒子
|
//1.分析盒子
|
||||||
@@ -23044,7 +23131,7 @@ function GetMaxHeightFn(rects) {
|
|||||||
*
|
*
|
||||||
* //除了变量 也可以设置过滤函数
|
* //除了变量 也可以设置过滤函数
|
||||||
* //例如:
|
* //例如:
|
||||||
* lir.FilterRectFn = !(w,h)=> (w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
* lir.FilterRectFn = (w,h)=> !(w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
||||||
*
|
*
|
||||||
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
||||||
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
||||||
@@ -23196,7 +23283,7 @@ class LargestInteriorRectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//area maxXIndex maxYIndex xcount ycount
|
//area maxXIndex maxYIndex xcount ycount,width,height
|
||||||
let rects = [];
|
let rects = [];
|
||||||
for (let j = 0; j < n; j++) // 对于每一列,使用基于柱状图的方法
|
for (let j = 0; j < n; j++) // 对于每一列,使用基于柱状图的方法
|
||||||
{
|
{
|
||||||
@@ -23234,11 +23321,12 @@ class LargestInteriorRectangle {
|
|||||||
//面积小于最小允许面积
|
//面积小于最小允许面积
|
||||||
if (area < this.MinArea)
|
if (area < this.MinArea)
|
||||||
continue;
|
continue;
|
||||||
rects.push([area, down[i], j, xCount, yCount]);
|
rects.push([area, down[i], j, xCount, yCount, width, height]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (rects.length) {
|
// while (rects.length)
|
||||||
let maxIndex = Max(rects, (t1, t2) => t2[0] > t1[0]);
|
if (rects.length) {
|
||||||
|
let maxIndex = this.GetMaxRectIndexFn(rects);
|
||||||
let [area, maxXIndex, maxYIndex, xCount, yCount] = rects[maxIndex];
|
let [area, maxXIndex, maxYIndex, xCount, yCount] = rects[maxIndex];
|
||||||
let xMax = xs[maxXIndex];
|
let xMax = xs[maxXIndex];
|
||||||
let yMax = ys[maxYIndex + 1];
|
let yMax = ys[maxYIndex + 1];
|
||||||
@@ -23253,16 +23341,20 @@ class LargestInteriorRectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//如果有被标记的方块,则删除它
|
//如果有被标记的方块,则删除它
|
||||||
arrayRemoveIf(rects, rect => {
|
//某些情况不适合这个算法,移除了它,保证结果正确性
|
||||||
let [area, maxX, maxY, xCount, yCount] = rect;
|
// arrayRemoveIf(rects, rect =>
|
||||||
for (let i = 0; i < xCount; i++) {
|
// {
|
||||||
for (let j = 0; j < yCount; j++) {
|
// let [area, maxX, maxY, xCount, yCount] = rect;
|
||||||
if (!matrix[maxX - 1 - i][maxY - j])
|
// for (let i = 0; i < xCount; i++)
|
||||||
return true;
|
// {
|
||||||
}
|
// for (let j = 0; j < yCount; j++)
|
||||||
}
|
// {
|
||||||
return false;
|
// if (!matrix[maxX - 1 - i][maxY - j])
|
||||||
});
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let maxRects = [];
|
let maxRects = [];
|
||||||
@@ -23312,8 +23404,8 @@ function IsPointInPolygon(polyPts, pt) {
|
|||||||
// if (equalv2(sp, pt, 1e-5) || equalv2(ep, pt, 1e-5))//在起点或者终点
|
// if (equalv2(sp, pt, 1e-5) || equalv2(ep, pt, 1e-5))//在起点或者终点
|
||||||
// return false;
|
// return false;
|
||||||
//点位于线上面
|
//点位于线上面
|
||||||
if (pt.y > Math.max(sp.y, ep.y))
|
// if (pt.y > Math.max(sp.y, ep.y))
|
||||||
continue;
|
// continue;
|
||||||
//线垂直Y轴
|
//线垂直Y轴
|
||||||
let derX = ep.x - sp.x;
|
let derX = ep.x - sp.x;
|
||||||
if (equaln$1(derX, 0, 5e-6)) {
|
if (equaln$1(derX, 0, 5e-6)) {
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -1,12 +1,14 @@
|
|||||||
import { Box2, Vector2 } from "three";
|
import { Box2, Vector2 } from "three";
|
||||||
|
/** [area maxXIndex maxYIndex xCount yCount,width,height] */
|
||||||
|
export type RectData = [number, number, number, number, number, number, number];
|
||||||
/**
|
/**
|
||||||
* 获取面积最大的矩形
|
* 获取面积最大的矩形
|
||||||
* @param rects
|
* @param rects
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
declare function GetMaxAreaFn(rects: [number, number, number][]): number;
|
declare function GetMaxAreaFn(rects: RectData[]): number;
|
||||||
declare function GetMaxWidthFn(rects: [number, number, number][]): number;
|
declare function GetMaxWidthFn(rects: RectData[]): number;
|
||||||
declare function GetMaxHeightFn(rects: [number, number, number][]): number;
|
declare function GetMaxHeightFn(rects: RectData[]): number;
|
||||||
/**
|
/**
|
||||||
* @example
|
* @example
|
||||||
*
|
*
|
||||||
@@ -18,7 +20,7 @@ declare function GetMaxHeightFn(rects: [number, number, number][]): number;
|
|||||||
*
|
*
|
||||||
* //除了变量 也可以设置过滤函数
|
* //除了变量 也可以设置过滤函数
|
||||||
* //例如:
|
* //例如:
|
||||||
* lir.FilterRectFn = !(w,h)=> (w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
* lir.FilterRectFn = (w,h)=> !(w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
||||||
*
|
*
|
||||||
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
||||||
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
||||||
@@ -33,7 +35,7 @@ export declare class LargestInteriorRectangle {
|
|||||||
MinArea: number;
|
MinArea: number;
|
||||||
/** 可以自定义过滤函数,以便过滤掉某些不需要的矩形,当返回true时,我们会过滤它 */
|
/** 可以自定义过滤函数,以便过滤掉某些不需要的矩形,当返回true时,我们会过滤它 */
|
||||||
FilterRectFn: (width: number, height: number) => boolean;
|
FilterRectFn: (width: number, height: number) => boolean;
|
||||||
GetMaxRectIndexFn: (rects: [number, number, number][]) => number;
|
GetMaxRectIndexFn: (rects: RectData[]) => number;
|
||||||
static GetMaxAreaFn: typeof GetMaxAreaFn;
|
static GetMaxAreaFn: typeof GetMaxAreaFn;
|
||||||
static GetMaxWidthFn: typeof GetMaxWidthFn;
|
static GetMaxWidthFn: typeof GetMaxWidthFn;
|
||||||
static GetMaxHeightFn: typeof GetMaxHeightFn;
|
static GetMaxHeightFn: typeof GetMaxHeightFn;
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"LargestInteriorRectangle.d.ts","sourceRoot":"","sources":["../../../../src/Add-on/testEntity/LargestInteriorRectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAW/C;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAG/D;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGhE;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGjE;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,wBAAwB;IAEjC,QAAQ,SAAO;IACf,SAAS,SAAO;IAChB,OAAO,SAAa;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAEzD,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,MAAM,CAAgB;IAGhF,MAAM,CAAC,YAAY,sBAAgB;IACnC,MAAM,CAAC,aAAa,uBAAiB;IACrC,MAAM,CAAC,cAAc,wBAAkB;;IAMvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;CAqS1C"}
|
{"version":3,"file":"LargestInteriorRectangle.d.ts","sourceRoot":"","sources":["../../../../src/Add-on/testEntity/LargestInteriorRectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAS/C,4DAA4D;AAC5D,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhF;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAG/C;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAGhD;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAGjD;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,wBAAwB;IAEjC,QAAQ,SAAO;IACf,SAAS,SAAO;IAChB,OAAO,SAAa;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAEzD,iBAAiB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAgB;IAGhE,MAAM,CAAC,YAAY,sBAAgB;IACnC,MAAM,CAAC,aAAa,uBAAiB;IACrC,MAAM,CAAC,cAAc,wBAAkB;;IAMvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;CAuS1C"}
|
@@ -47,6 +47,7 @@ export declare class IHostApplicationServices {
|
|||||||
sealMaxValue: number;
|
sealMaxValue: number;
|
||||||
sealValues: string;
|
sealValues: string;
|
||||||
hardwareExpressionFormattingAccuracy: number;
|
hardwareExpressionFormattingAccuracy: number;
|
||||||
|
partialSplitValueCanTakesEffect: boolean;
|
||||||
};
|
};
|
||||||
viewSize: {
|
viewSize: {
|
||||||
minViewHeight: number;
|
minViewHeight: number;
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"HostApplicationServices.d.ts","sourceRoot":"","sources":["../../../src/ApplicationServices/HostApplicationServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,qBAAa,wBAAwB;IAEjC,mBAAmB,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/D,oBAAoB,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAChE,mBAAmB,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/D,8BAA8B,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAE1E,mBAAmB,UAAQ;IAE3B,eAAe,EAAE,QAAQ,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAQ;IAC9C,cAAc,EAAE,OAAO,CAAQ;IAEnB,kBAAkB,SAAK;IACvB,mBAAmB,SAAK;IAExB,iBAAiB,SAAK;IAElC,kBAAkB,UAAS;IAC3B,WAAW,SAAK;IAEhB,OAAO,CAAC,eAAe,CAAM;IAC7B,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAM;IACpC,IAAI,WAAW,IACM,GAAG,CAD0B;IAClD,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAUvB;IAGW,WAAW,EAAE,UAAU,CAAwB;IAI/C,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAW;IAItD,mBAAmB,UAAQ;IAI3B,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAM;IAIzC,SAAS,UAAS;IAIlB,gBAAgB,UAAS;IAIzB,cAAc,UAAS;IAIvB,gBAAgB,UAAS;IAIzB,IAAI,EAAE,MAAM,CAAC;IAIb,cAAc,EAAE,OAAO,CAAS;IAGhC,aAAa;;;;;;;;;;;;;;;MAevB;IAEU,QAAQ;;;;MAIlB;IAEU,UAAU,EAAE,aAAa,CAInC;IAEU,aAAa,SAAM;IACnB,SAAS,SAAK;IACd,kBAAkB,EAAE,kBAAkB,CAA0B;IAE5E,OAAO;IAEP,OAAO,CAAC,MAAM,CAAC,eAAe,CAA2B;IACzD,MAAM,CAAC,WAAW,IAAI,wBAAwB;IAQxC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAClC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;CACzC;AAED,eAAO,IAAI,uBAAuB,0BAAyC,CAAC"}
|
{"version":3,"file":"HostApplicationServices.d.ts","sourceRoot":"","sources":["../../../src/ApplicationServices/HostApplicationServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,qBAAa,wBAAwB;IAEjC,mBAAmB,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/D,oBAAoB,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAChE,mBAAmB,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/D,8BAA8B,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAE1E,mBAAmB,UAAQ;IAE3B,eAAe,EAAE,QAAQ,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAQ;IAC9C,cAAc,EAAE,OAAO,CAAQ;IAEnB,kBAAkB,SAAK;IACvB,mBAAmB,SAAK;IAExB,iBAAiB,SAAK;IAElC,kBAAkB,UAAS;IAC3B,WAAW,SAAK;IAEhB,OAAO,CAAC,eAAe,CAAM;IAC7B,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAM;IACpC,IAAI,WAAW,IACM,GAAG,CAD0B;IAClD,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAUvB;IAGW,WAAW,EAAE,UAAU,CAAwB;IAI/C,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAW;IAItD,mBAAmB,UAAQ;IAI3B,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAM;IAIzC,SAAS,UAAS;IAIlB,gBAAgB,UAAS;IAIzB,cAAc,UAAS;IAIvB,gBAAgB,UAAS;IAIzB,IAAI,EAAE,MAAM,CAAC;IAIb,cAAc,EAAE,OAAO,CAAS;IAGhC,aAAa;;;;;;;;;;;;;;;;MAgBvB;IAEU,QAAQ;;;;MAIlB;IAEU,UAAU,EAAE,aAAa,CAInC;IAEU,aAAa,SAAM;IACnB,SAAS,SAAK;IACd,kBAAkB,EAAE,kBAAkB,CAA0B;IAE5E,OAAO;IAEP,OAAO,CAAC,MAAM,CAAC,eAAe,CAA2B;IACzD,MAAM,CAAC,WAAW,IAAI,wBAAwB;IAQxC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAClC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;CACzC;AAED,eAAO,IAAI,uBAAuB,0BAAyC,CAAC"}
|
2
types/Common/ColorPalette.d.ts
vendored
2
types/Common/ColorPalette.d.ts
vendored
@@ -14,7 +14,7 @@ export declare class ColorMaterial {
|
|||||||
private static _BasicDoubleSideMaterialMap;
|
private static _BasicDoubleSideMaterialMap;
|
||||||
static GetBasicMaterialDoubleSide(color: number): MeshBasicMaterial;
|
static GetBasicMaterialDoubleSide(color: number): MeshBasicMaterial;
|
||||||
private static _ConceptualMaterial;
|
private static _ConceptualMaterial;
|
||||||
static GetConceptualMaterial(color: number, side?: Side, enableTransparent?: boolean, freeze?: boolean): ShaderMaterial;
|
static GetConceptualMaterial(color: number, side?: Side, enableTransparent?: boolean, freeze?: boolean, opacity?: number): ShaderMaterial;
|
||||||
static UpdateConceptualMaterial(useLogBuf: boolean): void;
|
static UpdateConceptualMaterial(useLogBuf: boolean): void;
|
||||||
private static _printConceptualMaterial;
|
private static _printConceptualMaterial;
|
||||||
static GetPrintConceptualMaterial(): ShaderMaterial;
|
static GetPrintConceptualMaterial(): ShaderMaterial;
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"ColorPalette.d.ts","sourceRoot":"","sources":["../../../src/Common/ColorPalette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAyB,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAoB,MAAM,OAAO,CAAC;AACvJ,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE,eAAO,MAAM,YAAY,YAwQxB,CAAC;AAEF,eAAO,MAAM,UAAU,IAAI,CAAC;AAG5B,qBAAa,aAAa;IAEtB,OAAO;IACP,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAwC;IACvE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAwC;IACxE,MAAM,CAAC,SAAS,UAAS;IACzB,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,iBAAiB;IAUxE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAyC;IACvE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAYxD,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;IASzD,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAwC;IAClF,MAAM,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;IASnE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA0C;IAC5E,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAgB,EAAE,iBAAiB,UAAQ,EAAE,MAAM,UAAQ;IAsB7G,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO;IAKlD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAiB;IACxD,MAAM,CAAC,0BAA0B;IAiBjC,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAA6C;IACxF,MAAM,CAAC,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAUjE,OAAO,CAAC,MAAM,CAAC,6BAA6B,CAA6C;IACzF,MAAM,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAUlE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAU7B,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAoB;IAC1D,MAAM,CAAC,yBAAyB;IAOhC,MAAM,CAAC,4BAA4B;IAKnC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAoB;IACzD,MAAM,CAAC,wBAAwB;IAO/B,MAAM,CAAC,2BAA2B;IAOlC,MAAM,CAAC,kBAAkB,qBAItB;IAGH,MAAM,CAAC,gBAAgB,qBAIpB;IAGH,MAAM,CAAC,gBAAgB,eAMpB;IAGH,MAAM,CAAC,2BAA2B,oBAI/B;IAEH,MAAM,CAAC,uBAAuB,oBAG3B;CACN"}
|
{"version":3,"file":"ColorPalette.d.ts","sourceRoot":"","sources":["../../../src/Common/ColorPalette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAyB,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAoB,MAAM,OAAO,CAAC;AACvJ,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE,eAAO,MAAM,YAAY,YAwQxB,CAAC;AAEF,eAAO,MAAM,UAAU,IAAI,CAAC;AAG5B,qBAAa,aAAa;IAEtB,OAAO;IACP,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAwC;IACvE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAwC;IACxE,MAAM,CAAC,SAAS,UAAS;IACzB,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,iBAAiB;IAUxE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAyC;IACvE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAYxD,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;IASzD,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAwC;IAClF,MAAM,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;IASnE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA0C;IAC5E,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAgB,EAAE,iBAAiB,UAAQ,EAAE,MAAM,UAAQ,EAAE,OAAO,CAAC,EAAE,MAAM;IA8B/H,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO;IAKlD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAiB;IACxD,MAAM,CAAC,0BAA0B;IAiBjC,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAA6C;IACxF,MAAM,CAAC,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAUjE,OAAO,CAAC,MAAM,CAAC,6BAA6B,CAA6C;IACzF,MAAM,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAUlE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAU7B,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAoB;IAC1D,MAAM,CAAC,yBAAyB;IAOhC,MAAM,CAAC,4BAA4B;IAKnC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAoB;IACzD,MAAM,CAAC,wBAAwB;IAO/B,MAAM,CAAC,2BAA2B;IAOlC,MAAM,CAAC,kBAAkB,qBAItB;IAGH,MAAM,CAAC,gBAAgB,qBAIpB;IAGH,MAAM,CAAC,gBAAgB,eAMpB;IAGH,MAAM,CAAC,2BAA2B,oBAI/B;IAEH,MAAM,CAAC,uBAAuB,oBAG3B;CACN"}
|
15
types/DatabaseServices/Entity/Board.d.ts
vendored
15
types/DatabaseServices/Entity/Board.d.ts
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
import Geom3 from '@jscad/modeling/src/geometries/geom3/type';
|
||||||
import { Frustum, Geometry, Matrix3, Matrix4, Object3D, UVGenerator, Vector3 } from 'three';
|
import { Frustum, Geometry, Matrix3, Matrix4, Object3D, UVGenerator, Vector3 } from 'three';
|
||||||
import { FaceDirection } from "../../Add-on/DrawDrilling/DrillType";
|
import { FaceDirection } from "../../Add-on/DrawDrilling/DrillType";
|
||||||
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
||||||
@@ -157,22 +158,26 @@ export declare class Board extends ExtrudeSolid {
|
|||||||
Clear3DPathCache(): void;
|
Clear3DPathCache(): void;
|
||||||
private Get3DPathDrawObject;
|
private Get3DPathDrawObject;
|
||||||
Clear2DPathCache(): void;
|
Clear2DPathCache(): void;
|
||||||
private _2DPathCsgs;
|
_2DPathCsgs: Geom3[];
|
||||||
private _2DPathDrawObject;
|
_2DPathDrawObject: Object3D;
|
||||||
/**
|
/**
|
||||||
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
* 这个函数生成了二维刀路的csg数组,并且同时生成了_2DPathDrawObject(二维刀路提刀线框显示对象)
|
||||||
*/
|
*/
|
||||||
private Get2DPathCsgs;
|
Get2DPathCsgs(): Geom3[];
|
||||||
protected get Has2DPath(): boolean;
|
protected get Has2DPath(): boolean;
|
||||||
private _workerCalcedGeom;
|
private _workerCalcedGeom;
|
||||||
private _async2DPathIng;
|
private _async2DPathIng;
|
||||||
|
get Async2DPathing(): boolean;
|
||||||
GoodBye(): void;
|
GoodBye(): void;
|
||||||
|
private promise2DPath;
|
||||||
|
Load2DPathIng(): Promise<boolean>;
|
||||||
HandleSpliteEntitys(splitEntitys: this[]): void;
|
HandleSpliteEntitys(splitEntitys: this[]): void;
|
||||||
private get PlaceColor();
|
private get PlaceColor();
|
||||||
private GetPlaceFace;
|
private GetPlaceFace;
|
||||||
private GetBigHoleFace;
|
private GetBigHoleFace;
|
||||||
private _OffsetPathCache;
|
OffsetPathCache: Map<Polyline, {
|
||||||
private GetOffsetPath;
|
[key: string]: Polyline;
|
||||||
|
}>;
|
||||||
/**
|
/**
|
||||||
* 根据板的信息修改绘制的实体
|
* 根据板的信息修改绘制的实体
|
||||||
* 1.非拆单板 灰色
|
* 1.非拆单板 灰色
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"CompositeEntity.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/CompositeEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAK5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,8BACsB,eAAgB,SAAQ,MAAM;;IAOpC,OAAO,EAAE,MAAM,EAAE,CAAM;IAEnC;;MAEE;IACF,IAAa,gBAAgB,IAAI,OAAO,CA6BvC;IAID;;MAEE;IACO,OAAO;IAShB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAsBzC,SAAS,CAAC,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAajF,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAuBtD,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAgB3B;IACD,IAAI,QAAQ,qEAGX;IACD,IAAI,QAAQ,CAAC,EAAE,kEAAA,EAQd;IAED,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAK9D,kBAAkB;IASlB;;;;;;;MAOE;IACF,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAQZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAK/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAMhD,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC;IAKlC;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAMxD,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,yBAAyB;IASjC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;IA4ClF,eAAe,CAAC,IAAI,EAAE,IAAI;IAkB1B,iBAAiB,CAAC,CAAC,EAAE,OAAO;IAS5B,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAclC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAS3B"}
|
{"version":3,"file":"CompositeEntity.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/CompositeEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAK5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,8BACsB,eAAgB,SAAQ,MAAM;;IAOpC,OAAO,EAAE,MAAM,EAAE,CAAM;IAEnC;;MAEE;IACF,IAAa,gBAAgB,IAAI,OAAO,CA6BvC;IAID;;MAEE;IACO,OAAO;IAShB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAsBzC,SAAS,CAAC,cAAc,CAAC,UAAU,GAAE,UAAiC,GAAG,QAAQ;IAajF,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAwBtD,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAgB3B;IACD,IAAI,QAAQ,qEAGX;IACD,IAAI,QAAQ,CAAC,EAAE,kEAAA,EAQd;IAED,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAK9D,kBAAkB;IASlB;;;;;;;MAOE;IACF,mBAAmB,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE;IAQZ,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC;IAK/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO;IAMhD,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC;IAKlC;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO;IAMxD,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,yBAAyB;IASjC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;IA4ClF,eAAe,CAAC,IAAI,EAAE,IAAI;IAkB1B,iBAAiB,CAAC,CAAC,EAAE,OAAO;IAS5B,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;IAclC,SAAS,CAAC,IAAI,EAAE,QAAQ;CAS3B"}
|
1
types/DatabaseServices/Entity/Extrude.d.ts
vendored
1
types/DatabaseServices/Entity/Extrude.d.ts
vendored
@@ -216,6 +216,7 @@ export declare class ExtrudeSolid extends Entity {
|
|||||||
ClearDraw(): this;
|
ClearDraw(): this;
|
||||||
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
|
UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
|
||||||
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
|
UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
|
||||||
|
private GetModelGroove;
|
||||||
UpdateJigMaterial(color?: number): void;
|
UpdateJigMaterial(color?: number): void;
|
||||||
/**
|
/**
|
||||||
* 简化的文件读取和写入,只写入必要的数据,没有id,没有其他版本号
|
* 简化的文件读取和写入,只写入必要的数据,没有id,没有其他版本号
|
||||||
|
File diff suppressed because one or more lines are too long
3
types/DatabaseServices/Entity/Polyline.d.ts
vendored
3
types/DatabaseServices/Entity/Polyline.d.ts
vendored
@@ -3,6 +3,7 @@ import { Status } from '../../Common/Status';
|
|||||||
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
|
||||||
import { Box3Ext } from '../../Geometry/Box';
|
import { Box3Ext } from '../../Geometry/Box';
|
||||||
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
|
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
|
||||||
|
import { PolylineJoinType } from '../../GraphicsSystem/OffsetPolyline';
|
||||||
import { CADFiler } from '../CADFiler';
|
import { CADFiler } from '../CADFiler';
|
||||||
import { Shape2 } from '../Shape2';
|
import { Shape2 } from '../Shape2';
|
||||||
import { Arc } from './Arc';
|
import { Arc } from './Arc';
|
||||||
@@ -136,7 +137,7 @@ export declare class Polyline extends Curve {
|
|||||||
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
|
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
|
||||||
GetClosestPointTo2(pt: Vector3, extType: ExtendType): Vector3;
|
GetClosestPointTo2(pt: Vector3, extType: ExtendType): Vector3;
|
||||||
GetOffsetCurves(offsetDist: number): Polyline[];
|
GetOffsetCurves(offsetDist: number): Polyline[];
|
||||||
GetFeedingToolPath(offsetDist: number, offsetDistSq?: number): Polyline[];
|
GetFeedingToolPath(offsetDist: number, offsetDistSq?: number, joinType?: PolylineJoinType): Polyline[];
|
||||||
/**
|
/**
|
||||||
* 分解
|
* 分解
|
||||||
*/
|
*/
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Polyline.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Polyline.ts"],"names":[],"mappings":"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"}
|
3
types/Editor/DefaultConfig.d.ts
vendored
3
types/Editor/DefaultConfig.d.ts
vendored
@@ -12,7 +12,7 @@ import { IBoardBatchCurtailOption } from "../UI/Store/OptionInterface/BoardBatch
|
|||||||
import { BoardProcessOption } from "../UI/Store/OptionInterface/BoardProcessOption";
|
import { BoardProcessOption } from "../UI/Store/OptionInterface/BoardProcessOption";
|
||||||
import { BulkheadCeilingOption } from "../UI/Store/OptionInterface/BulkheadCeilingOption";
|
import { BulkheadCeilingOption } from "../UI/Store/OptionInterface/BulkheadCeilingOption";
|
||||||
import { ClosingStripOption } from "../UI/Store/OptionInterface/ClosingStripOption";
|
import { ClosingStripOption } from "../UI/Store/OptionInterface/ClosingStripOption";
|
||||||
import { BehindBoardOption, ChangeColorByBoardMaterialOption, ChangeColorByRoomOrCabinetOption, CommonPanelConfigOption, DatalistConfigOption, IBatchModifyPanelOption, IDimStyleOption, LayerBoardOption, LayerNailOption, ModifyTextsConfigOption, RightPlaneLightOption, ShareBoardInfConfigurationOption, SideBoardOption, SingleBoardOption, TBBoardOption, VerticalBoardOption, WindowPanelConfigOption } from "../UI/Store/OptionInterface/IOptionInterface";
|
import { BehindBoardOption, ChangeColorByBoardMaterialOption, ChangeColorByRoomOrCabinetOption, CommonPanelConfigOption, DatalistConfigOption, DoorRelatesInfoOption, IBatchModifyPanelOption, IDimStyleOption, LayerBoardOption, LayerNailOption, ModifyTextsConfigOption, RightPlaneLightOption, ShareBoardInfConfigurationOption, SideBoardOption, SingleBoardOption, TBBoardOption, VerticalBoardOption, WindowPanelConfigOption } from "../UI/Store/OptionInterface/IOptionInterface";
|
||||||
import { PointLightOption, RectAreaLightOption, SpotLightOption } from "../UI/Store/OptionInterface/LightConfigOption";
|
import { PointLightOption, RectAreaLightOption, SpotLightOption } from "../UI/Store/OptionInterface/LightConfigOption";
|
||||||
import { Viewport2ConfigOption, Viewport3ConfigOption, Viewport4ConfigOption, ViewportConfigOption } from "../UI/Store/OptionInterface/ViewportConfigOption";
|
import { Viewport2ConfigOption, Viewport3ConfigOption, Viewport4ConfigOption, ViewportConfigOption } from "../UI/Store/OptionInterface/ViewportConfigOption";
|
||||||
import { IWineRackOption } from "../UI/Store/WineRackInterface";
|
import { IWineRackOption } from "../UI/Store/WineRackInterface";
|
||||||
@@ -64,4 +64,5 @@ export declare const DefaultChangeColorByBoardMaterialOption: ChangeColorByBoard
|
|||||||
export declare const DefaultShareBoardInfConfigurationOption: ShareBoardInfConfigurationOption;
|
export declare const DefaultShareBoardInfConfigurationOption: ShareBoardInfConfigurationOption;
|
||||||
export declare const DefaultBulkheadCeilingOption: BulkheadCeilingOption;
|
export declare const DefaultBulkheadCeilingOption: BulkheadCeilingOption;
|
||||||
export declare const DefaultChangeColorByRoomOrCabinetOption: ChangeColorByRoomOrCabinetOption;
|
export declare const DefaultChangeColorByRoomOrCabinetOption: ChangeColorByRoomOrCabinetOption;
|
||||||
|
export declare const DefaultDoorRelatesInfoOption: DoorRelatesInfoOption;
|
||||||
//# sourceMappingURL=DefaultConfig.d.ts.map
|
//# sourceMappingURL=DefaultConfig.d.ts.map
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"DefaultConfig.d.ts","sourceRoot":"","sources":["../../../src/Editor/DefaultConfig.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"DefaultConfig.d.ts","sourceRoot":"","sources":["../../../src/Editor/DefaultConfig.ts"],"names":[],"mappings":"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"}
|
27
types/Geometry/BSPGroupParse.d.ts
vendored
Normal file
27
types/Geometry/BSPGroupParse.d.ts
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import { Poly3 } from "@jscad/modeling/src/geometries/types";
|
||||||
|
import { Vector3 } from "three";
|
||||||
|
import { Geom3Res } from "../Common/CSGIntersect";
|
||||||
|
/**
|
||||||
|
* 解决 THREEBSP(CSG) 产生的结果没有办法得到分裂的个数.
|
||||||
|
* 本类分析了THREEBSP的组合情况.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* let topology = new BSPGroupParse(csg);
|
||||||
|
* topology.parse();
|
||||||
|
*/
|
||||||
|
export declare class BSPGroupParse {
|
||||||
|
fractionDigits: number;
|
||||||
|
constructor(bsp?: Geom3Res, fractionDigits?: number);
|
||||||
|
Add(poly: Poly3): void;
|
||||||
|
/**
|
||||||
|
* 返回组合点
|
||||||
|
*/
|
||||||
|
Parse(): Vector3[][];
|
||||||
|
private map;
|
||||||
|
private Get;
|
||||||
|
private GetPts;
|
||||||
|
private vecMap;
|
||||||
|
private GenerateP;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=BSPGroupParse.d.ts.map
|
1
types/Geometry/BSPGroupParse.d.ts.map
Normal file
1
types/Geometry/BSPGroupParse.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"BSPGroupParse.d.ts","sourceRoot":"","sources":["../../../src/Geometry/BSPGroupParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAEa,cAAc;gBAArC,GAAG,CAAC,EAAE,QAAQ,EAAS,cAAc,SAAI;IAMrD,GAAG,CAAC,IAAI,EAAE,KAAK;IAaf;;OAEG;IACH,KAAK,IAAI,OAAO,EAAE,EAAE;IAoBpB,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,GAAG;IAUX,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS;CAMpB"}
|
18
types/GraphicsSystem/OffsetPolyline.d.ts
vendored
18
types/GraphicsSystem/OffsetPolyline.d.ts
vendored
@@ -3,6 +3,7 @@ import { Contour } from "../DatabaseServices/Contour";
|
|||||||
import { Arc } from "../DatabaseServices/Entity/Arc";
|
import { Arc } from "../DatabaseServices/Entity/Arc";
|
||||||
import { Circle } from "../DatabaseServices/Entity/Circle";
|
import { Circle } from "../DatabaseServices/Entity/Circle";
|
||||||
import { Curve } from "../DatabaseServices/Entity/Curve";
|
import { Curve } from "../DatabaseServices/Entity/Curve";
|
||||||
|
import { Line } from "../DatabaseServices/Entity/Line";
|
||||||
import { Polyline } from "../DatabaseServices/Entity/Polyline";
|
import { Polyline } from "../DatabaseServices/Entity/Polyline";
|
||||||
interface IOffsetResult {
|
interface IOffsetResult {
|
||||||
index: number;
|
index: number;
|
||||||
@@ -25,11 +26,16 @@ export declare class CurveTreeNode {
|
|||||||
TrimBy(contour: Contour, box: Box3): void;
|
TrimBy(contour: Contour, box: Box3): void;
|
||||||
get Nodes(): this[];
|
get Nodes(): this[];
|
||||||
}
|
}
|
||||||
|
export declare enum PolylineJoinType {
|
||||||
|
Square = 0,
|
||||||
|
Round = 1
|
||||||
|
}
|
||||||
export declare class OffsetPolyline {
|
export declare class OffsetPolyline {
|
||||||
_Polyline: Polyline;
|
_Polyline: Polyline;
|
||||||
_OffsetDist: number;
|
_OffsetDist: number;
|
||||||
_ToolPath: boolean;
|
_ToolPath: boolean;
|
||||||
private _OffsetDistSq;
|
private _OffsetDistSq;
|
||||||
|
private _JoinType;
|
||||||
_CacheOCS: Matrix4;
|
_CacheOCS: Matrix4;
|
||||||
_Vertexs: Vector3[];
|
_Vertexs: Vector3[];
|
||||||
_SubCurves: Curve[];
|
_SubCurves: Curve[];
|
||||||
@@ -44,7 +50,16 @@ export declare class OffsetPolyline {
|
|||||||
_IsClose: boolean;
|
_IsClose: boolean;
|
||||||
_OffsetDistSign: number;
|
_OffsetDistSign: number;
|
||||||
_IsTopoOffset: boolean;
|
_IsTopoOffset: boolean;
|
||||||
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number);
|
/**
|
||||||
|
*
|
||||||
|
* @param _Polyline
|
||||||
|
* @param _OffsetDist
|
||||||
|
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
|
||||||
|
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
|
||||||
|
* @param [_JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
|
||||||
|
*/
|
||||||
|
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number, //对直角走刀不进行圆弧过度
|
||||||
|
_JoinType?: PolylineJoinType);
|
||||||
Do(): Polyline[];
|
Do(): Polyline[];
|
||||||
InitSubCurves(): this;
|
InitSubCurves(): this;
|
||||||
protected GeneralCirclesAndVertexs(): void;
|
protected GeneralCirclesAndVertexs(): void;
|
||||||
@@ -68,6 +83,7 @@ export declare class OffsetPolyline {
|
|||||||
CheckPointDir(pt: Vector3): boolean;
|
CheckPointDir(pt: Vector3): boolean;
|
||||||
GetPointAtCurveDir(pt: Vector3): number;
|
GetPointAtCurveDir(pt: Vector3): number;
|
||||||
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
|
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
|
||||||
|
protected CreateSquare(center: Vector3, curveNow: IOffsetResult, curveNext: IOffsetResult, entTypeCode: number): Line;
|
||||||
}
|
}
|
||||||
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
|
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
|
||||||
export declare function CurveIsFine(curve: Curve): boolean;
|
export declare function CurveIsFine(curve: Curve): boolean;
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"OffsetPolyline.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/OffsetPolyline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAK/C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAM/D,UAAU,aAAa;IAEnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;CAC1B;AAED,qBAAa,aAAa;IAQH,KAAK,EAAE,KAAK;IAN/B,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,GAAG,EAAE,IAAI,CAAC;IACV,IAAI,EAAE,OAAO,CAAC;IAEd,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI;gBAEnB,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI;IAK3C,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;IA6ElC,IAAI,KAAK,WAUR;CACJ;AAED,qBAAa,cAAc;IA4BJ,SAAS,EAAE,QAAQ;IAAS,WAAW,EAAE,MAAM;IAAS,SAAS;IAChF,OAAO,CAAC,aAAa;IA1BzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAGnB,kBAAkB,EAAE,aAAa,EAAE,CAAC;IAEpC,eAAe,EAAE,aAAa,EAAE,CAAC;IAEjC,qBAAqB,EAAE,aAAa,EAAE,CAAC;IAGvC,qBAAqB,EAAE,OAAO,EAAE,CAAC;IACjC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAG5B,UAAU,EAAE,QAAQ,EAAE,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,UAAS;gBAEH,SAAS,EAAE,QAAQ,EAAS,WAAW,EAAE,MAAM,EAAS,SAAS,UAAQ,EAChF,aAAa,SAA2B;IAKpD,EAAE,IAAI,QAAQ,EAAE;IAkDhB,aAAa;IAUb,SAAS,CAAC,wBAAwB;IAWlC,SAAS,CAAC,eAAe;IAkBzB,aAAa;IA+Kb;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAQrB,SAAS,CAAC,mBAAmB;IAoK7B,SAAS,CAAC,cAAc;IAqBxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,kBAAkB;IAoH1B,OAAO,CAAC,6BAA6B;IAwCrC,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO;IAKnC,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IA0FvC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO;CAOvE;AAOD,wBAAgB,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,UAGjD;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,WAIvC"}
|
{"version":3,"file":"OffsetPolyline.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/OffsetPolyline.ts"],"names":[],"mappings":"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"}
|
1
types/GraphicsSystem/RenderType.d.ts
vendored
1
types/GraphicsSystem/RenderType.d.ts
vendored
@@ -22,6 +22,7 @@ export declare enum RenderType {
|
|||||||
PlaceFace = 8,
|
PlaceFace = 8,
|
||||||
BigHoleFace = 81,
|
BigHoleFace = 81,
|
||||||
CustomNumber = 9,
|
CustomNumber = 9,
|
||||||
|
ModelGroove = 10,
|
||||||
/******************************************** 在视口时的渲染模式 */
|
/******************************************** 在视口时的渲染模式 */
|
||||||
/**
|
/**
|
||||||
* 线框模式
|
* 线框模式
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"RenderType.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/RenderType.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,UAAU;IAElB;;OAEG;IACH,SAAS,IAAI;IAEb;;OAEG;IACH,UAAU,IAAI;IAGd;;OAEG;IACH,QAAQ,IAAI;IAEZ,GAAG,IAAI;IACP,KAAK,IAAI;IACT,WAAW;IACX,SAAS,IAAI;IACb,IAAI,IAAI;IACR,SAAS,IAAI;IACb,WAAW,KAAK;IAChB,YAAY,IAAI;IAEhB,0DAA0D;IAC1D;;MAEE;IACF,cAAc,MAAM;IAEpB;;OAEG;IACH,eAAe,MAAM;IAGrB;;OAEG;IACH,aAAa,MAAM;IAEnB,QAAQ,MAAM;IACd,UAAU,MAAM;IAChB,WAAW;IACX,cAAc,MAAM;IACpB,iBAAiB,MAAM;IAEvB,qBAAqB,MAAM;CAC9B;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,WAGhD"}
|
{"version":3,"file":"RenderType.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/RenderType.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,UAAU;IAElB;;OAEG;IACH,SAAS,IAAI;IAEb;;OAEG;IACH,UAAU,IAAI;IAGd;;OAEG;IACH,QAAQ,IAAI;IAEZ,GAAG,IAAI;IACP,KAAK,IAAI;IACT,WAAW;IACX,SAAS,IAAI;IACb,IAAI,IAAI;IACR,SAAS,IAAI;IACb,WAAW,KAAK;IAChB,YAAY,IAAI;IAChB,WAAW,KAAK;IAEhB,0DAA0D;IAC1D;;MAEE;IACF,cAAc,MAAM;IAEpB;;OAEG;IACH,eAAe,MAAM;IAGrB;;OAEG;IACH,aAAa,MAAM;IAEnB,QAAQ,MAAM;IACd,UAAU,MAAM;IAChB,WAAW;IACX,cAAc,MAAM;IACpB,iBAAiB,MAAM;IAEvB,qBAAqB,MAAM;CAC9B;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,WAGhD"}
|
@@ -16,15 +16,15 @@ export declare class FeedingToolPath extends Singleton {
|
|||||||
*/
|
*/
|
||||||
private HandleShape;
|
private HandleShape;
|
||||||
/**用于测试走刀路径 */
|
/**用于测试走刀路径 */
|
||||||
TestCalcPath(br: Board, isCd?: boolean): Curve[];
|
TestCalcPath(br: Board, isCd?: boolean, rk?: number): Curve[];
|
||||||
/**
|
/**
|
||||||
* 计算走刀路径
|
* 计算走刀路径
|
||||||
*/
|
*/
|
||||||
CalcPath(modelings: IModeling[], br: Board): Curve[];
|
CalcPath(modelings: IModeling[], br: Board, rk?: number): Curve[];
|
||||||
GetModelFeedPath(br: {
|
GetModelFeedPath(br: {
|
||||||
Thickness: number;
|
Thickness: number;
|
||||||
ContourCurve: ExtrudeContourCurve;
|
ContourCurve: ExtrudeContourCurve;
|
||||||
}, modeling: IModeling): Curve[];
|
}, modeling: IModeling, redundancyKnif?: number): Curve[];
|
||||||
private GrooveAddSize;
|
private GrooveAddSize;
|
||||||
/**
|
/**
|
||||||
* 获取所有的轮廓
|
* 获取所有的轮廓
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"FeedingToolPath.d.ts","sourceRoot":"","sources":["../../../../src/GraphicsSystem/ToolPath/FeedingToolPath.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAYrD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAE1C;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAuJnB,cAAc;IACd,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,UAAQ;IAmBpC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE;IAWpD,gBAAgB,CAAC,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,mBAAmB,CAAC;KAAE,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK,EAAE;IA8C7G,OAAO,CAAC,aAAa;IA2BrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAuCnB,aAAa,CAAC,EAAE,EAAE,KAAK;IAkBvB,eAAe,CAAC,EAAE,EAAE,KAAK;IAsBzB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM;CAsInF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,KAAK;;kBAKT,WAAW;;;kBACP,WAAW;;EAyGzD"}
|
{"version":3,"file":"FeedingToolPath.d.ts","sourceRoot":"","sources":["../../../../src/GraphicsSystem/ToolPath/FeedingToolPath.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAYrD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAE1C;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IA+JnB,cAAc;IACd,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,UAAQ,EAAE,EAAE,SAAI;IAmB5C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,SAAI,GAAG,KAAK,EAAE;IAW5D,gBAAgB,CAAC,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,mBAAmB,CAAC;KAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,SAAI,GAAG,KAAK,EAAE;IA8CjI,OAAO,CAAC,aAAa;IA2BrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAuCnB,aAAa,CAAC,EAAE,EAAE,KAAK;IAkBvB,eAAe,CAAC,EAAE,EAAE,KAAK;IAsBzB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM;CAsInF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,KAAK;;kBAKT,WAAW;;;kBACP,WAAW;;EAyGzD"}
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"OptimizeToolPath.d.ts","sourceRoot":"","sources":["../../../../src/GraphicsSystem/ToolPath/OptimizeToolPath.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsD,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGxG,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAGrD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAiH7F;AAiHD,cAAc;AACd,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,CAatF;AAED,eAAe;AACf,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAGjD;AAED,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YA+B3E"}
|
{"version":3,"file":"OptimizeToolPath.d.ts","sourceRoot":"","sources":["../../../../src/GraphicsSystem/ToolPath/OptimizeToolPath.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsD,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGxG,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAGrD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAqH7F;AAiHD,cAAc;AACd,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,CAatF;AAED,eAAe;AACf,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAGjD;AAED,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YA+B3E"}
|
6
types/Production/Product.d.ts
vendored
6
types/Production/Product.d.ts
vendored
@@ -113,7 +113,7 @@ interface IChaiDanFeedingData extends IOriginModelingData {
|
|||||||
}
|
}
|
||||||
export declare namespace Production {
|
export declare namespace Production {
|
||||||
/**获取板件拆单数据 */
|
/**获取板件拆单数据 */
|
||||||
function GetBoardSplitOrderData(br: Board): ISpliteOrderData | undefined;
|
function GetBoardSplitOrderData(br: Board, redundancyKnif?: number): ISpliteOrderData | undefined;
|
||||||
function ParseSealData(sealData: BrSealedData): ISealingData[];
|
function ParseSealData(sealData: BrSealedData): ISealingData[];
|
||||||
function GetBoardInfo(br: Board, size: Vector3): IBoardProdInfo;
|
function GetBoardInfo(br: Board, size: Vector3): IBoardProdInfo;
|
||||||
function GetMetalTotalEntitys(md: HardwareCompositeEntity, isHole?: boolean, filter?: (e: Entity) => boolean): Entity[];
|
function GetMetalTotalEntitys(md: HardwareCompositeEntity, isHole?: boolean, filter?: (e: Entity) => boolean): Entity[];
|
||||||
@@ -126,7 +126,7 @@ export declare namespace Production {
|
|||||||
* @param br
|
* @param br
|
||||||
* @param offsetTanslation
|
* @param offsetTanslation
|
||||||
*/
|
*/
|
||||||
function GetBoardModelingData(br: Board, offsetTanslation: Vector3): {
|
function GetBoardModelingData(br: Board, offsetTanslation: Vector3, redundancyKnif?: number): {
|
||||||
modeling: IModelingData[];
|
modeling: IModelingData[];
|
||||||
sideModeling: IModelingData[];
|
sideModeling: IModelingData[];
|
||||||
};
|
};
|
||||||
@@ -151,7 +151,7 @@ export declare namespace Production {
|
|||||||
function Data2Polyline(data: IContourData, isClose?: boolean): Polyline;
|
function Data2Polyline(data: IContourData, isClose?: boolean): Polyline;
|
||||||
function Get2DModeing(br: Board, offset: Vector3): I2DModeling[];
|
function Get2DModeing(br: Board, offset: Vector3): I2DModeling[];
|
||||||
function Get3DModeing(br: Board, offset: Vector3): I3DModeling[];
|
function Get3DModeing(br: Board, offset: Vector3): I3DModeling[];
|
||||||
function GetChaiDanFeedingPath(data: IChaiDanFeedingData): IContourData[];
|
function GetChaiDanFeedingPath(data: IChaiDanFeedingData, redundancyKnif?: number): IContourData[];
|
||||||
function GetGroupName(ent: Entity): string;
|
function GetGroupName(ent: Entity): string;
|
||||||
}
|
}
|
||||||
export {};
|
export {};
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"Product.d.ts","sourceRoot":"","sources":["../../../src/Production/Product.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"Product.d.ts","sourceRoot":"","sources":["../../../src/Production/Product.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,5 @@
|
|||||||
import { BoardOpenDir, BoardType, BrRelativePos } from "../../../DatabaseServices/Entity/BoardInterface";
|
import { BoardOpenDir, BoardType, BrRelativePos } from "../../../DatabaseServices/Entity/BoardInterface";
|
||||||
|
import { EOrderType } from "../../../Editor/OrderType";
|
||||||
import { RenderType } from "../../../GraphicsSystem/RenderType";
|
import { RenderType } from "../../../GraphicsSystem/RenderType";
|
||||||
import { BehindHeightPositon, RadioType, ViewDirection } from "./OptionEnum";
|
import { BehindHeightPositon, RadioType, ViewDirection } from "./OptionEnum";
|
||||||
export interface IBaseOption {
|
export interface IBaseOption {
|
||||||
@@ -200,7 +201,10 @@ export interface IKnifeProps {
|
|||||||
angle: number;
|
angle: number;
|
||||||
}
|
}
|
||||||
export interface CommonPanelConfigOption extends IBaseOption {
|
export interface CommonPanelConfigOption extends IBaseOption {
|
||||||
orderType: string;
|
orderMap: {
|
||||||
|
[key: string]: string;
|
||||||
|
};
|
||||||
|
orderType: EOrderType;
|
||||||
}
|
}
|
||||||
export interface DatalistColumnWidthOption {
|
export interface DatalistColumnWidthOption {
|
||||||
name: number;
|
name: number;
|
||||||
@@ -268,4 +272,7 @@ export interface ChangeColorByRoomOrCabinetOption {
|
|||||||
accordRoomName: boolean;
|
accordRoomName: boolean;
|
||||||
accordCabinetName: boolean;
|
accordCabinetName: boolean;
|
||||||
}
|
}
|
||||||
|
export interface DoorRelatesInfoOption extends IBaseOption {
|
||||||
|
hingeOption: [string, boolean][];
|
||||||
|
}
|
||||||
//# sourceMappingURL=IOptionInterface.d.ts.map
|
//# sourceMappingURL=IOptionInterface.d.ts.map
|
File diff suppressed because one or more lines are too long
25
types/csg/core/CAG.d.ts
vendored
Normal file
25
types/csg/core/CAG.d.ts
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Vector3 } from "three";
|
||||||
|
import { CSG } from "./CSG";
|
||||||
|
import { Polygon } from "./math/Polygon3";
|
||||||
|
import { Side } from "./math/Side";
|
||||||
|
import { Vector2D } from "./math/Vector2";
|
||||||
|
import { Vector3D } from "./math/Vector3";
|
||||||
|
/**
|
||||||
|
* Class CAG
|
||||||
|
* Holds a solid area geometry like CSG but 2D.
|
||||||
|
* Each area consists of a number of sides.
|
||||||
|
* Each side is a line between 2 points.
|
||||||
|
*/
|
||||||
|
export declare class CAG {
|
||||||
|
sides: Side[];
|
||||||
|
isCanonicalized: boolean;
|
||||||
|
constructor(sides?: Side[]);
|
||||||
|
fromPoints(pts: Vector3[]): this;
|
||||||
|
flipped(): CAG;
|
||||||
|
getBounds(): Vector2D[];
|
||||||
|
canonicalized(): CAG;
|
||||||
|
extrude(offsetVector: Vector3D): CSG;
|
||||||
|
private toCSGWall;
|
||||||
|
toPolygons(bottom?: boolean): Polygon[];
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=CAG.d.ts.map
|
1
types/csg/core/CAG.d.ts.map
Normal file
1
types/csg/core/CAG.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"CAG.d.ts","sourceRoot":"","sources":["../../../../src/csg/core/CAG.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM1C;;;;;GAKG;AACH,qBAAa,GAAG;IAGO,KAAK,EAAE,IAAI,EAAE;IADhC,eAAe,EAAE,OAAO,CAAS;gBACd,KAAK,GAAE,IAAI,EAAO;IAIrC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI;IAkBhC,OAAO;IAOP,SAAS;IAkBT,aAAa,IAAI,GAAG;IAOpB,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,GAAG;IAcpC,OAAO,CAAC,SAAS;IAMjB,UAAU,CAAC,MAAM,UAAQ,GAAG,OAAO,EAAE;CA+BxC"}
|
95
types/csg/core/CSG.d.ts
vendored
Normal file
95
types/csg/core/CSG.d.ts
vendored
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
import { Matrix4 } from "three";
|
||||||
|
import { Polygon } from "./math/Polygon3";
|
||||||
|
import { Vector3D } from "./math/Vector3";
|
||||||
|
/** Class CSG
|
||||||
|
* Holds a binary space partition tree representing a 3D solid. Two solids can
|
||||||
|
* be combined using the `union()`, `subtract()`, and `intersect()` methods.
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
export declare class CSG {
|
||||||
|
polygons: Polygon[];
|
||||||
|
/** # 是否已精简重复点 */
|
||||||
|
isCanonicalized: boolean;
|
||||||
|
/** # 是否已合并轮廓 */
|
||||||
|
isRetesselated: boolean;
|
||||||
|
cachedBoundingBox: Vector3D[];
|
||||||
|
constructor(polygons?: Polygon[]);
|
||||||
|
/**
|
||||||
|
* Return a new CSG solid representing the space in either this solid or
|
||||||
|
* in the given solids. Neither this solid nor the given solids are modified.
|
||||||
|
* @param {CSG[]} csg - list of CSG objects
|
||||||
|
* @returns {CSG} new CSG object
|
||||||
|
* @example
|
||||||
|
* let C = A.union(B)
|
||||||
|
* @example
|
||||||
|
* +-------+ +-------+
|
||||||
|
* | | | |
|
||||||
|
* | A | | |
|
||||||
|
* | +--+----+ = | +----+
|
||||||
|
* +----+--+ | +----+ |
|
||||||
|
* | B | | |
|
||||||
|
* | | | |
|
||||||
|
* +-------+ +-------+
|
||||||
|
*/
|
||||||
|
union(csg: CSG | CSG[]): CSG;
|
||||||
|
unionSub(csg: CSG, retesselate?: boolean, canonicalize?: boolean): CSG;
|
||||||
|
unionForNonIntersecting(csg: CSG): CSG;
|
||||||
|
/**
|
||||||
|
* Return a new CSG solid representing space in this solid but
|
||||||
|
* not in the given solids. Neither this solid nor the given solids are modified.
|
||||||
|
* @returns new CSG object
|
||||||
|
* @example
|
||||||
|
* let C = A.subtract(B)
|
||||||
|
* @example
|
||||||
|
* +-------+ +-------+
|
||||||
|
* | | | |
|
||||||
|
* | A | | |
|
||||||
|
* | +--+----+ = | +--+
|
||||||
|
* +----+--+ | +----+
|
||||||
|
* | B |
|
||||||
|
* | |
|
||||||
|
* +-------+
|
||||||
|
*/
|
||||||
|
subtract(csg: CSG | CSG[]): CSG;
|
||||||
|
subtractSub(csg: CSG, retesselate?: boolean, canonicalize?: boolean): CSG;
|
||||||
|
/**
|
||||||
|
* Return a new CSG solid representing space in both this solid and
|
||||||
|
* in the given solids. Neither this solid nor the given solids are modified.
|
||||||
|
* let C = A.intersect(B)
|
||||||
|
* @returns new CSG object
|
||||||
|
* @example
|
||||||
|
* +-------+
|
||||||
|
* | |
|
||||||
|
* | A |
|
||||||
|
* | +--+----+ = +--+
|
||||||
|
* +----+--+ | +--+
|
||||||
|
* | B |
|
||||||
|
* | |
|
||||||
|
* +-------+
|
||||||
|
*/
|
||||||
|
intersect(csg: CSG | CSG[]): CSG;
|
||||||
|
intersectSub(csg: CSG, retesselate?: boolean, canonicalize?: boolean): CSG;
|
||||||
|
/**
|
||||||
|
* Return a new CSG solid with solid and empty space switched.
|
||||||
|
* This solid is not modified.
|
||||||
|
*/
|
||||||
|
invert(): CSG;
|
||||||
|
transform1(matrix4x4: Matrix4): CSG;
|
||||||
|
/**
|
||||||
|
* Return a new CSG solid that is transformed using the given Matrix.
|
||||||
|
* Several matrix transformations can be combined before transforming this solid.
|
||||||
|
* @param {CSG.Matrix4x4} matrix4x4 - matrix to be applied
|
||||||
|
* @returns {CSG} new CSG object
|
||||||
|
* @example
|
||||||
|
* var m = new CSG.Matrix4x4()
|
||||||
|
* m = m.multiply(CSG.Matrix4x4.rotationX(40))
|
||||||
|
* m = m.multiply(CSG.Matrix4x4.translation([-.5, 0, 0]))
|
||||||
|
* let B = A.transform(m)
|
||||||
|
*/
|
||||||
|
transform(matrix4x4: Matrix4): this;
|
||||||
|
canonicalized(): CSG;
|
||||||
|
reTesselated(): CSG;
|
||||||
|
mayOverlap(csg: CSG): boolean;
|
||||||
|
toTriangles(): Polygon[];
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=CSG.d.ts.map
|
1
types/csg/core/CSG.d.ts.map
Normal file
1
types/csg/core/CSG.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"CSG.d.ts","sourceRoot":"","sources":["../../../../src/csg/core/CSG.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C;;;;GAIG;AACH,qBAAa,GAAG;IAOO,QAAQ,EAAE,OAAO,EAAE;IALtC,iBAAiB;IACjB,eAAe,EAAE,OAAO,CAAS;IACjC,gBAAgB;IAChB,cAAc,EAAE,OAAO,CAAS;IAChC,iBAAiB,EAAE,QAAQ,EAAE,CAAC;gBACX,QAAQ,GAAE,OAAO,EAAO;IAG3C;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;IAmB5B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,UAAQ,EAAE,YAAY,UAAQ,GAAG,GAAG;IAwBlE,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAStC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;IAgB/B,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,UAAQ,EAAE,YAAY,UAAQ,GAAG,GAAG;IAerE;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;IAgBhC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,UAAQ,EAAE,YAAY,UAAQ,GAAG,GAAG;IAiBtE;;;OAGG;IACH,MAAM,IAAI,GAAG;IAOb,UAAU,CAAC,SAAS,EAAE,OAAO;IAY7B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAyCnC,aAAa;IAKb,YAAY;IAOZ,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAgB7B,WAAW,IAAI,OAAO,EAAE;CAsB3B"}
|
10
types/csg/core/FuzzyFactory2d.d.ts
vendored
Normal file
10
types/csg/core/FuzzyFactory2d.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { FuzzyFactory } from "./FuzzyFactory";
|
||||||
|
import { Side } from "./math/Side";
|
||||||
|
import { Vertex2D } from "./math/Vertex2";
|
||||||
|
export declare class FuzzyCAGFactory {
|
||||||
|
vertexfactory: FuzzyFactory;
|
||||||
|
constructor();
|
||||||
|
getVertex(sourcevertex: Vertex2D): Vertex2D;
|
||||||
|
getSide(sourceside: Side): Side;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=FuzzyFactory2d.d.ts.map
|
1
types/csg/core/FuzzyFactory2d.d.ts.map
Normal file
1
types/csg/core/FuzzyFactory2d.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"FuzzyFactory2d.d.ts","sourceRoot":"","sources":["../../../../src/csg/core/FuzzyFactory2d.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qBAAa,eAAe;IAExB,aAAa,eAA4B;;IAGzC,SAAS,CAAC,YAAY,EAAE,QAAQ;IAOhC,OAAO,CAAC,UAAU,EAAE,IAAI;CAM3B"}
|
9
types/csg/core/Geometry2CSG.d.ts
vendored
Normal file
9
types/csg/core/Geometry2CSG.d.ts
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { Geom3 } from "@jscad/modeling/src/geometries/geom3";
|
||||||
|
import { BufferGeometry, Geometry } from "three";
|
||||||
|
import { Geom3Res } from "../../Common/CSGIntersect";
|
||||||
|
import { CSG } from "./CSG";
|
||||||
|
export declare function Geometry2CSG(geometry: Geometry | BufferGeometry): CSG;
|
||||||
|
export declare function CSG2Geometry(csg: CSG): Geometry;
|
||||||
|
export declare function Geometry2CSG2(geometry: Geometry | BufferGeometry): Geom3;
|
||||||
|
export declare function CSG2Geometry2(csg: Geom3 | Geom3Res): Geometry;
|
||||||
|
//# sourceMappingURL=Geometry2CSG.d.ts.map
|
1
types/csg/core/Geometry2CSG.d.ts.map
Normal file
1
types/csg/core/Geometry2CSG.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"Geometry2CSG.d.ts","sourceRoot":"","sources":["../../../../src/csg/core/Geometry2CSG.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAIpE,OAAO,EAAE,cAAc,EAAS,QAAQ,EAA2B,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAO5B,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,GAAG,CAkCrE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAmC/C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,KAAK,CAmBxE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CA8B7D"}
|
15
types/csg/core/math/Line2.d.ts
vendored
Normal file
15
types/csg/core/math/Line2.d.ts
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import { Vector2D } from "./Vector2";
|
||||||
|
/** class Line2D
|
||||||
|
* Represents a directional line in 2D space
|
||||||
|
* A line is parametrized by its normal vector (perpendicular to the line, rotated 90 degrees counter clockwise)
|
||||||
|
* and w. The line passes through the point <normal>.times(w).
|
||||||
|
* Equation: p is on line if normal.dot(p)==w
|
||||||
|
*/
|
||||||
|
export declare class Line2D {
|
||||||
|
normal: Vector2D;
|
||||||
|
w: number;
|
||||||
|
constructor(normal: Vector2D, w: number);
|
||||||
|
direction(): Vector2D;
|
||||||
|
static fromPoints(p1: Vector2D, p2: Vector2D): Line2D;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=Line2.d.ts.map
|
1
types/csg/core/math/Line2.d.ts.map
Normal file
1
types/csg/core/math/Line2.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"Line2.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/math/Line2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;GAKG;AACH,qBAAa,MAAM;IAEf,MAAM,EAAE,QAAQ,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;gBACE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM;IASvC,SAAS;IAIT,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ;CAU/C"}
|
17
types/csg/core/math/OrthoNormalBasis.d.ts
vendored
Normal file
17
types/csg/core/math/OrthoNormalBasis.d.ts
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { Plane } from "./Plane";
|
||||||
|
import { Vector2D } from "./Vector2";
|
||||||
|
import { Vector3D } from "./Vector3";
|
||||||
|
/** class OrthoNormalBasis
|
||||||
|
* Reprojects points on a 3D plane onto a 2D plane
|
||||||
|
* or from a 2D plane back onto the 3D plane
|
||||||
|
*/
|
||||||
|
export declare class OrthoNormalBasis {
|
||||||
|
plane: Plane;
|
||||||
|
v: Vector3D;
|
||||||
|
u: Vector3D;
|
||||||
|
planeorigin: Vector3D;
|
||||||
|
constructor(plane: Plane, rightVector?: Vector3D);
|
||||||
|
to2D(vec3: Vector3D): Vector2D;
|
||||||
|
to3D(vec2: Vector2D): Vector3D;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=OrthoNormalBasis.d.ts.map
|
1
types/csg/core/math/OrthoNormalBasis.d.ts.map
Normal file
1
types/csg/core/math/OrthoNormalBasis.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"OrthoNormalBasis.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/math/OrthoNormalBasis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;GAGG;AAEH,qBAAa,gBAAgB;IAKN,KAAK,EAAE,KAAK;IAH/B,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;IACZ,WAAW,EAAE,QAAQ,CAAC;gBACH,KAAK,EAAE,KAAK,EAAE,WAAW,GAAE,QAAiD;IAO/F,IAAI,CAAC,IAAI,EAAE,QAAQ;IAKnB,IAAI,CAAC,IAAI,EAAE,QAAQ;CAMtB"}
|
12
types/csg/core/math/Side.d.ts
vendored
Normal file
12
types/csg/core/math/Side.d.ts
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { Polygon } from "./Polygon3";
|
||||||
|
import { Vertex2D } from "./Vertex2";
|
||||||
|
export declare class Side {
|
||||||
|
vertex0: Vertex2D;
|
||||||
|
vertex1: Vertex2D;
|
||||||
|
constructor(vertex0: Vertex2D, vertex1: Vertex2D);
|
||||||
|
toPolygon3D(z0: number, z1: number): Polygon;
|
||||||
|
flipped(): Side;
|
||||||
|
length(): number;
|
||||||
|
static _fromFakePolygon(polygon: Polygon): Side;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=Side.d.ts.map
|
1
types/csg/core/math/Side.d.ts.map
Normal file
1
types/csg/core/math/Side.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"Side.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/math/Side.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,qBAAa,IAAI;IAEM,OAAO,EAAE,QAAQ;IAAS,OAAO,EAAE,QAAQ;gBAA3C,OAAO,EAAE,QAAQ,EAAS,OAAO,EAAE,QAAQ;IAC9D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IA0BlC,OAAO;IAKP,MAAM;IAMN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAuClD"}
|
9
types/csg/core/math/Vertex2.d.ts
vendored
Normal file
9
types/csg/core/math/Vertex2.d.ts
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { Vector2D } from "./Vector2";
|
||||||
|
export declare class Vertex2D {
|
||||||
|
tag: any;
|
||||||
|
pos: Vector2D;
|
||||||
|
constructor(pos: Vector2D);
|
||||||
|
toString(): string;
|
||||||
|
getTag(): any;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=Vertex2.d.ts.map
|
1
types/csg/core/math/Vertex2.d.ts.map
Normal file
1
types/csg/core/math/Vertex2.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"Vertex2.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/math/Vertex2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,qBAAa,QAAQ;IAEjB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,QAAQ,CAAC;gBACF,GAAG,EAAE,QAAQ;IAKzB,QAAQ;IAKR,MAAM;CAUT"}
|
3
types/csg/core/math/reTesselateCoplanarPolygons.d.ts
vendored
Normal file
3
types/csg/core/math/reTesselateCoplanarPolygons.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import { Polygon } from "./Polygon3";
|
||||||
|
export declare function reTesselateCoplanarPolygons(sourcePolygons: Polygon[], destpolygons?: Polygon[]): void;
|
||||||
|
//# sourceMappingURL=reTesselateCoplanarPolygons.d.ts.map
|
1
types/csg/core/math/reTesselateCoplanarPolygons.d.ts.map
Normal file
1
types/csg/core/math/reTesselateCoplanarPolygons.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"reTesselateCoplanarPolygons.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/math/reTesselateCoplanarPolygons.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkCrC,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,YAAY,GAAE,OAAO,EAAO,GAAG,IAAI,CAmazG"}
|
51
types/csg/core/trees.d.ts
vendored
Normal file
51
types/csg/core/trees.d.ts
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
import { Plane } from "./math/Plane";
|
||||||
|
import { Polygon } from "./math/Polygon3";
|
||||||
|
import { Vector3D } from "./math/Vector3";
|
||||||
|
declare class PolygonTreeNode {
|
||||||
|
parent: PolygonTreeNode;
|
||||||
|
children: PolygonTreeNode[];
|
||||||
|
polygon: Polygon;
|
||||||
|
removed: boolean;
|
||||||
|
constructor(polygon?: Polygon);
|
||||||
|
addPolygons(polygons: Polygon[]): void;
|
||||||
|
remove(): void;
|
||||||
|
isRemoved(): boolean;
|
||||||
|
isRootNode(): boolean;
|
||||||
|
invert(): void;
|
||||||
|
getPolygon(): Polygon;
|
||||||
|
getPolygons(outPolygons?: Polygon[]): Polygon[];
|
||||||
|
splitByPlane(plane: Plane, coplanarFrontNodes: PolygonTreeNode[], coplanarBackNodes: PolygonTreeNode[], frontNodes: PolygonTreeNode[], backNodes: PolygonTreeNode[]): void;
|
||||||
|
private splitByPlaneNotChildren;
|
||||||
|
addChild(polygon: Polygon): PolygonTreeNode;
|
||||||
|
invertSub(): void;
|
||||||
|
recursivelyInvalidatePolygon(): void;
|
||||||
|
}
|
||||||
|
export declare class Tree {
|
||||||
|
polygonTree: PolygonTreeNode;
|
||||||
|
rootNode: Node;
|
||||||
|
constructor(polygons: Polygon[]);
|
||||||
|
invert(): void;
|
||||||
|
/**
|
||||||
|
* this 减去 tree 删除此BSP树中位于其他BSP树内的所有多边形
|
||||||
|
* @param tree 不会被修改
|
||||||
|
* @param [alsoRemovecoplanarFront=false] 同时删除共面
|
||||||
|
*/
|
||||||
|
clipTo(tree: Tree, alsoRemovecoplanarFront?: boolean): void;
|
||||||
|
allPolygons(): Polygon[];
|
||||||
|
addPolygons(polygons: Polygon[]): void;
|
||||||
|
}
|
||||||
|
declare class Node {
|
||||||
|
plane: Plane;
|
||||||
|
front: Node;
|
||||||
|
back: Node;
|
||||||
|
polygonTreeNodes: PolygonTreeNode[];
|
||||||
|
parent: Node;
|
||||||
|
constructor(parent: Node);
|
||||||
|
invert(): void;
|
||||||
|
clipPolygons(polygonTreeNodes: PolygonTreeNode[], alsoRemoveCoplanarFront: boolean): void;
|
||||||
|
clipTo(tree: Tree, alsoRemovecoplanarFront: boolean): void;
|
||||||
|
addPolygonTreeNodes(polygonTreeNodes: PolygonTreeNode[]): void;
|
||||||
|
getParentPlaneNormals(normals: Vector3D[], maxdepth: number): void;
|
||||||
|
}
|
||||||
|
export {};
|
||||||
|
//# sourceMappingURL=trees.d.ts.map
|
1
types/csg/core/trees.d.ts.map
Normal file
1
types/csg/core/trees.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"trees.d.ts","sourceRoot":"","sources":["../../../../src/csg/core/trees.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAQ,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA2B1C,cAAM,eAAe;IAEjB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAS;gBACb,OAAO,CAAC,EAAE,OAAO;IAO7B,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE;IAc/B,MAAM;IAsBN,SAAS;IAKT,UAAU;IAOV,MAAM;IAMN,UAAU,IAAI,OAAO;IAMrB,WAAW,CAAC,WAAW,GAAE,OAAO,EAAO,GAAG,OAAO,EAAE;IA2BnD,YAAY,CACR,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,eAAe,EAAE,EACrC,iBAAiB,EAAE,eAAe,EAAE,EACpC,UAAU,EAAE,eAAe,EAAE,EAC7B,SAAS,EAAE,eAAe,EAAE;IAgChC,OAAO,CAAC,uBAAuB;IA6D/B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe;IAQ3C,SAAS;IAgBT,4BAA4B;CAU/B;AAMD,qBAAa,IAAI;IAEb,WAAW,kBAAyB;IACpC,QAAQ,OAAkB;gBACd,QAAQ,EAAE,OAAO,EAAE;IAK/B,MAAM;IAON;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,UAAQ;IAKlD,WAAW;IAKX,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE;CAOlC;AAUD,cAAM,IAAI;IAEN,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,gBAAgB,EAAE,eAAe,EAAE,CAAM;IACzC,MAAM,EAAE,IAAI,CAAC;gBACD,MAAM,EAAE,IAAI;IAMxB,MAAM;IAmBN,YAAY,CAAC,gBAAgB,EAAE,eAAe,EAAE,EAAE,uBAAuB,EAAE,OAAO;IAkDlF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO;IAoBnD,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,EAAE;IA2DvD,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM;CAW9D"}
|
6
types/csg/core/utils.d.ts
vendored
Normal file
6
types/csg/core/utils.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import { Vector2D } from "./math/Vector2";
|
||||||
|
export declare function fnNumberSort(a: any, b: any): number;
|
||||||
|
export declare const solve2Linear: (a: number, b: number, c: number, d: number, u: number, v: number) => number[];
|
||||||
|
export declare function insertSorted<T>(array: T[], element: T, comparefunc: (a: T, b: T) => number): void;
|
||||||
|
export declare function interpolateBetween2DPointsForY(point1: Vector2D, point2: Vector2D, y: number): number;
|
||||||
|
//# sourceMappingURL=utils.d.ts.map
|
1
types/csg/core/utils.d.ts.map
Normal file
1
types/csg/core/utils.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/csg/core/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,YAAY,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,UAGhC;AAED,eAAO,MAAM,YAAY,MAAgB,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,aASrG,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,QAgB1F;AAKD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,UAqB3F"}
|
13
types/csg/core/utils/canonicalize.d.ts
vendored
Normal file
13
types/csg/core/utils/canonicalize.d.ts
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { FuzzyCSGFactory } from "../FuzzyFactory3d";
|
||||||
|
import { CSG } from "../CSG";
|
||||||
|
import { CAG } from "../CAG";
|
||||||
|
/**
|
||||||
|
* Returns a cannoicalized version of the input csg : ie every very close
|
||||||
|
* points get deduplicated
|
||||||
|
*
|
||||||
|
* 返回删除重复点的csg,重复点将被合并
|
||||||
|
*/
|
||||||
|
export declare function canonicalizeCSG(csg: CSG): CSG;
|
||||||
|
export declare function canonicalizeCAG(cag: CAG): CAG;
|
||||||
|
export declare function CSGFromCSGFuzzyFactory(factory: FuzzyCSGFactory, sourcecsg: CSG): CSG;
|
||||||
|
//# sourceMappingURL=canonicalize.d.ts.map
|
1
types/csg/core/utils/canonicalize.d.ts.map
Normal file
1
types/csg/core/utils/canonicalize.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"canonicalize.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/utils/canonicalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAI7B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAO7C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,OAMvC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,OAO9E"}
|
11
types/csg/core/utils/csgMeasurements.d.ts
vendored
Normal file
11
types/csg/core/utils/csgMeasurements.d.ts
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { Vector3D } from "../math/Vector3";
|
||||||
|
import { CSG } from "../CSG";
|
||||||
|
/**
|
||||||
|
* Returns an array of Vector3D, providing minimum coordinates and maximum coordinates
|
||||||
|
* of this solid.
|
||||||
|
* @example
|
||||||
|
* let bounds = A.getBounds()
|
||||||
|
* let minX = bounds[0].x
|
||||||
|
*/
|
||||||
|
export declare function bounds(csg: CSG): Vector3D[];
|
||||||
|
//# sourceMappingURL=csgMeasurements.d.ts.map
|
1
types/csg/core/utils/csgMeasurements.d.ts.map
Normal file
1
types/csg/core/utils/csgMeasurements.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"csgMeasurements.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/utils/csgMeasurements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,EAAE,CA2B3C"}
|
3
types/csg/core/utils/retesellate.d.ts
vendored
Normal file
3
types/csg/core/utils/retesellate.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import { CSG } from "../CSG";
|
||||||
|
export declare function reTesselate(csg: CSG): CSG;
|
||||||
|
//# sourceMappingURL=retesellate.d.ts.map
|
1
types/csg/core/utils/retesellate.d.ts.map
Normal file
1
types/csg/core/utils/retesellate.d.ts.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"retesellate.d.ts","sourceRoot":"","sources":["../../../../../src/csg/core/utils/retesellate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAK7B,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA+BzC"}
|
Reference in New Issue
Block a user