@bitbybit-dev/core
Version:
Bit By Bit Developers Core CAD API to Program Geometry
44 lines (43 loc) • 1.28 kB
JavaScript
export class DrawHelperCore {
constructor(vector) {
this.vector = vector;
}
computeEdgeMiddlePos(edge) {
let pos;
if (edge.vertex_coord.length === 2) {
const midFloor = edge.vertex_coord[0];
const midCeil = edge.vertex_coord[1];
pos = this.vector.lerp({
first: midFloor,
second: midCeil,
fraction: 0.5,
});
}
else if (edge.vertex_coord.length === 3) {
pos = edge.vertex_coord[1];
}
else {
const midFloor = edge.vertex_coord[Math.floor(edge.vertex_coord.length / 2)];
const midCeil = edge.vertex_coord[Math.floor(edge.vertex_coord.length / 2 + 1)];
pos = this.vector.lerp({
first: midFloor,
second: midCeil,
fraction: 0.5,
});
}
return pos;
}
computeFaceMiddlePos(vertexCoordVec) {
let x = 0;
let y = 0;
let z = 0;
let realLength = 0;
vertexCoordVec.forEach(v => {
x += v[0];
y += v[1];
z += v[2];
realLength++;
});
return [x / realLength, y / realLength, z / realLength];
}
}