MCPcopy Create free account
hub / github.com/CNCKitchen/stlTexturizer / recomputeFaceNormal

Function recomputeFaceNormal

js/regularize.js:132–146  ·  view source on GitHub ↗
(t)

Source from the content-addressed store, hash-verified

130 }
131
132 // Per-triangle face normal (unit) + flag for deleted tris
133 const triNrmX = new Float32Array(triCount);
134 const triNrmY = new Float32Array(triCount);
135 const triNrmZ = new Float32Array(triCount);
136 const triDeleted = new Uint8Array(triCount);
137 const newParentId = new Int32Array(faceParentId);
138
139 function recomputeFaceNormal(t) {
140 const a = corners[t*3], b = corners[t*3+1], c = corners[t*3+2];
141 const ax = vertX[a], ay = vertY[a], az = vertZ[a];
142 const e1x = vertX[b]-ax, e1y = vertY[b]-ay, e1z = vertZ[b]-az;
143 const e2x = vertX[c]-ax, e2y = vertY[c]-ay, e2z = vertZ[c]-az;
144 const nx = e1y*e2z - e1z*e2y;
145 const ny = e1z*e2x - e1x*e2z;
146 const nz = e1x*e2y - e1y*e2x;
147 const len = Math.sqrt(nx*nx + ny*ny + nz*nz);
148 if (len > 0) {
149 triNrmX[t] = nx/len; triNrmY[t] = ny/len; triNrmZ[t] = nz/len;

Callers 2

regularizeMeshFunction · 0.85
tryCollapseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected