功能:更新文件序列化
This commit is contained in:
27
api.cjs.js
27
api.cjs.js
@@ -488,7 +488,7 @@ function AutoRecord(target, property, descriptor) {
|
||||
});
|
||||
}
|
||||
|
||||
const UE_REX_DEL = /_.*/g;
|
||||
//const UE_REX_DEL = /_.*/g;
|
||||
/**
|
||||
* CAD对象工厂,通过注册 和暴露的创建方法,动态创建对象
|
||||
*/
|
||||
@@ -497,7 +497,8 @@ class CADFactory {
|
||||
this.objectNameMap = new Map();
|
||||
}
|
||||
static RegisterObject(C) {
|
||||
this.factory.objectNameMap.set(C.name.replace(UE_REX_DEL, ""), C);
|
||||
//this.factory.objectNameMap.set(C.name.replace(UE_REX_DEL, ""), C);
|
||||
this.factory.objectNameMap.set(C.name, C);
|
||||
}
|
||||
static RegisterObjectAlias(C, name) {
|
||||
this.factory.objectNameMap.set(name, C);
|
||||
@@ -1540,8 +1541,7 @@ exports.Entity = Entity_1 = class Entity extends CADObject {
|
||||
if (this._Matrix.elements[14] === 0)
|
||||
return this;
|
||||
this.WriteAllObjectRecord();
|
||||
this._Matrix.elements[14] = 0;
|
||||
this.Update(UpdateDraw.Matrix);
|
||||
this.Move({ x: 0, y: 0, z: -this.Z });
|
||||
return this;
|
||||
}
|
||||
//坐标系二维化
|
||||
@@ -17746,17 +17746,17 @@ class BoardGetFace {
|
||||
}
|
||||
}
|
||||
//坐标系共面且法线相反
|
||||
function MatrixIsCoplane2(matrixFrom, matrixTo, fuzz = 1e-5) {
|
||||
function MatrixIsCoplane2(matrixFrom, matrixTo, zFuzz) {
|
||||
let nor1 = new three.Vector3().setFromMatrixColumn(matrixFrom, 2);
|
||||
let nor2 = new three.Vector3().setFromMatrixColumn(matrixTo, 2);
|
||||
//法线共面
|
||||
if (!equalv3(nor1, nor2.negate(), fuzz))
|
||||
if (!equalv3(nor1, nor2.negate(), 1e-5))
|
||||
return false;
|
||||
//高共面
|
||||
let pt = new three.Vector3().setFromMatrixPosition(matrixTo);
|
||||
//变换到自身对象坐标系.
|
||||
pt.applyMatrix4(new three.Matrix4().getInverse(matrixFrom));
|
||||
return equaln$1(pt.z, 0, fuzz);
|
||||
return equaln$1(pt.z, 0, zFuzz);
|
||||
}
|
||||
function GetSideFaceMtx(cu, inverseZ = false) {
|
||||
let x = cu.GetFistDeriv(0).normalize();
|
||||
@@ -20906,6 +20906,8 @@ function InsertSortedIndex(array, element, comparefunc) {
|
||||
let compareresult = comparefunc(element, testelement);
|
||||
if (compareresult > 0) // element > testelement
|
||||
leftbound = testindex + 1;
|
||||
else if (compareresult === 0) //因为函数 FindBestRange 会取index-1 来取范围
|
||||
leftbound = testindex + 1;
|
||||
else
|
||||
rightbound = testindex;
|
||||
}
|
||||
@@ -27460,15 +27462,19 @@ exports.RoomWallBase = class RoomWallBase extends exports.RoomBase {
|
||||
this.RelevancyHoles.push(id);
|
||||
}
|
||||
}
|
||||
if (ver > 2) {
|
||||
this._Height = file.Read();
|
||||
}
|
||||
}
|
||||
//对象将自身数据写入到文件.
|
||||
WriteFile(file) {
|
||||
file.Write(2);
|
||||
file.Write(3);
|
||||
super.WriteFile(file);
|
||||
file.Write(this._Thickness);
|
||||
file.Write(this.RelevancyHoles.length);
|
||||
for (let id of this.RelevancyHoles)
|
||||
file.WriteObjectId(id);
|
||||
file.Write(this._Height);
|
||||
}
|
||||
};
|
||||
exports.RoomWallBase.SnapMode = WallSnapMode.All;
|
||||
@@ -35450,7 +35456,8 @@ class RoomRegionParse {
|
||||
floor.OCS = con.contour.Curve.OCSNoClone;
|
||||
floor.UpdateContourHoles(con.contour.Curve, con.children.map(c => c.contour.Curve));
|
||||
top.UpdateContourHoles(con.contour.Curve, con.children.map(c => c.contour.Curve));
|
||||
top.Move({ x: 0, y: 0, z: 2700 }); //等轮廓设置完在移动 否则设置失败
|
||||
floor.Z = minZ;
|
||||
top.Z = maxZ; //等轮廓设置完在移动 否则设置失败
|
||||
oldR.Position = pos;
|
||||
oldR.Area = floor.Area;
|
||||
});
|
||||
@@ -35678,7 +35685,7 @@ class RoomWallParse {
|
||||
return map;
|
||||
};
|
||||
//按Z轴区分
|
||||
let zgroupMap = GroupWalls(walls, w => Math.round(w.OCSNoClone.elements[14] * 100));
|
||||
let zgroupMap = GroupWalls(walls, w => Math.round(w.Z * 100));
|
||||
for (let [, walls] of zgroupMap) {
|
||||
this.PraseWallsFromSameFloor(walls, changeWalls);
|
||||
regionPrase.Do(walls);
|
||||
|
Reference in New Issue
Block a user