2 Commits
0.0.3 ... 0.2.2

Author SHA1 Message Date
FishOrBear
4388a1f7c8 更新代码,支持更高精度的圆弧拉伸实体 2021-07-28 18:18:55 +08:00
FishOrBear
eb204d4f8a 更新修复uv错误 2021-07-28 16:30:15 +08:00
3 changed files with 27 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
import { Vector3, LineDashedMaterial, Vector2, MeshBasicMaterial, LineBasicMaterial, DoubleSide, ShaderMaterial, Color, Matrix4, Box3, Object3D, BufferGeometry, Shape as Shape$1, ShapeGeometry, BufferAttribute, EllipseCurve, ExtrudeGeometry, Mesh, Plane as Plane$1, Line3, Line as Line$1, MathUtils, Geometry, Face3, Path, LineSegments, InstancedInterleavedBuffer, InterleavedBufferAttribute, CylinderBufferGeometry, Float32BufferAttribute, ShapeUtils, CatmullRomCurve3, BoxBufferGeometry, BoxGeometry } from 'three';
import { Box3, BoxBufferGeometry, BoxGeometry, BufferAttribute, BufferGeometry, CatmullRomCurve3, Color, CylinderBufferGeometry, DoubleSide, EllipseCurve, ExtrudeGeometry, Face3, Float32BufferAttribute, Geometry, InstancedInterleavedBuffer, InterleavedBufferAttribute, Line as Line$1, Line3, LineBasicMaterial, LineDashedMaterial, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, Object3D, Path, Plane as Plane$1, ShaderMaterial, Shape as Shape$1, ShapeGeometry, ShapeUtils, Vector2, Vector3 } from 'three';
import { Line2 } from 'three/examples/jsm/lines/Line2';
import { LineGeometry } from 'three/examples/jsm/lines/LineGeometry';
import { LineMaterial } from 'three/examples/jsm/lines/LineMaterial';
@@ -2824,21 +2824,38 @@ var BufferGeometryUtils;
BufferGeometryUtils.MergeBufferAttributes = MergeBufferAttributes;
})(BufferGeometryUtils || (BufferGeometryUtils = {}));
let tempArc;
class Shape2 extends Shape$1
{
getPoints(divisions = 12)
getPoints(divisions = 12, optimizeArc = true)
{
divisions = divisions || 12;
let points = [], last;
for (let i = 0, curves = this.curves; i < curves.length; i++) {
let curve = curves[i];
let resolution = divisions;
//@ts-ignore
let resolution = (curve && curve.isEllipseCurve) ? clamp(curve.getLength() / 20, divisions * 2, 60)
if (curve && curve.isEllipseCurve) {
if (optimizeArc) {
if (!tempArc)
tempArc = new Arc;
tempArc.IsClockWise = curve.aClockwise;
tempArc.StartAngle = curve.aStartAngle;
tempArc.EndAngle = curve.aEndAngle;
tempArc.Radius = Math.abs(curve.xRadius);
//根据圆弧的角度,来确定绘制个数
let count = Math.max(2, Math.abs(Math.ceil((tempArc.AllAngle) / Math.PI)) * divisions);
resolution = clamp(Math.ceil(tempArc.Length / 5), count, 360);
}
else
resolution = divisions * 2;
}
else {
//@ts-ignore
: (curve && (curve.isLineCurve || curve.isLineCurve3)) ? 1
resolution = (curve && (curve.isLineCurve || curve.isLineCurve3)) ? 1
//@ts-ignore
: (curve && curve.isSplineCurve) ? divisions * curve.points.length
: divisions;
}
let pts = curve.getPoints(resolution);
for (let j = 0; j < pts.length; j++) {
let point = pts[j];
@@ -18817,7 +18834,7 @@ class ExtudeWall
}
//#endregion
//和X平行平行
let isXPar = (vs[0].y + vs[1].y + vs[2].y) < 0.01;
let isXPar = equaln(vs[0].x, vs[1].x, 1e-2);
function AddUv(p)
{
if (isXPar)
@@ -20715,5 +20732,5 @@ function ProjectBoard(knifBoard, projectBoard)
//用于翻转绘制出来的槽
const OverturnMatrix = new Matrix4().makeBasis(YAxis, ZAxis, XAxis);
export { Circle, ContourTreeNode, CurveTapeShape, DepthType, ExtrudeBuildConfig, ExtrudeGeometryBuilder, ExtrudeSolid, FastMeshGeometry, Groove, Polyline, TempPolyline };
export { Circle, ContourTreeNode, CurveTapeShape, DepthType, ExtrudeBuildConfig, ExtrudeGeometryBuilder, ExtrudeSolid, FastMeshGeometry, Groove, Polyline, TempPolyline, Shape2 };
//# sourceMappingURL=api.esm.js.map

View File

@@ -1,6 +1,6 @@
{
"name": "webcad_ue4_api",
"version": "0.0.1",
"version": "0.2.2",
"description": "",
"main": "api.esm.js",
"module": "api.esm.js",

3
types/ueapi.d.ts vendored
View File

@@ -1,5 +1,6 @@
export * from "./DatabaseServices/Entity/Circle";
export * from "./DatabaseServices/Entity/Extrude";
export * from "./DatabaseServices/Entity/Polyline";
export * from "./DatabaseServices/Shape2";
export * from "./Geometry/ExtrudeEdgeGeometry2";
//# sourceMappingURL=ueapi.d.ts.map
//# sourceMappingURL=ueapi.d.ts.map