UNPKG

@bitbybit-dev/core

Version:

Bit By Bit Developers Core CAD API to Program Geometry

44 lines (43 loc) 1.28 kB
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]; } }